元素访问
与列表的操作一样。
# -*- coding:utf-8 -*-
import numpy as np
print('一维数组')
nums = [1,2,3,4,5,6,7,8] #一维数组
arr = np.array(nums)
print('数组',arr)
print('数组的第1个元素:',arr[0])
print('数组的第3个元素:',arr[2])
print('----------分隔线----------')
print('二维数组')
nums = [[1,2,3,4,5],[6,7,8,9,10]] #二维数组
arr1 = np.array(nums)
print('数组',arr1)
#下述两种方式都是正确的
print('数组的第1行第2个元素:',arr1[0][1])
print('数组的第2行第4个元素:',arr1[1,3])
print('----------分隔线----------')
print('负数下标')
nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]] #二维数组
arr2 = np.array(nums)
print('数组',arr2)
print('数组的最后1行最后1个元素:',arr2[-1][-1])
print('数组的倒数第2行倒数3个元素:',arr2[-2,-3])
元素修改
- 使用下标修改元素值
- 二维数组可以修改一整行或一整列的元素
-*- coding:utf-8 -*-
import numpy as np
print('一维数组')
nums = [1,2,3,4,5,6,7,8] #一维数组
arr = np.array(nums)
print('原数组',arr)
arr[3] = 10 #修改第4个元素
print('修改后的数组',arr)
print('----------分隔线----------')
print('二维数组')
nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]] #二维数组
arr1 = np.array(nums)
print('原数组\n',arr1)
arr1[1][3] = 99 #修改第2行第4个元素
print('修改后单个元素后的数组:\n',arr1)
arr1[2] = [99,88,77,66,55] #修改第3行元素
print('修改后整行元素后的数组:\n',arr1)
arr1[:,2] = [99,88,77] #修改第3列元素
print('修改后整列元素后的数组:\n',arr1)
元素添加
语法:numpy.append(arr,value,axis = n)
- arr:数组
- value:需要添加的元素
- axis:用于定义沿着那一条轴进行操作
- append()不修改原数组,返回一个新数组
# -*- coding:utf-8 -*-
import numpy as np
print('一维数组')
nums = [1,2,3,4,5,6,7,8] #一维数组
arr = np.array(nums)
print('原数组\n',arr)
reslut = np.append(arr,10)
print('修改后的数组',reslut)
print('----------分隔线----------')
print('二维数组')
nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]] #二维数组
arr1 = np.array(nums)
print('原数组\n',arr1)
result = np.append(arr1,[[55,66,77,88,99]],axis = 0) #axis = 0 表示沿着纵轴方向操作,改变行
print('axis = 0 修改后的数组:\n',result)
result = np.append(arr1,[[55],[66],[77]],axis = 1) #axis = 1 表示沿着横轴方向操作,改变列
print('axis = 1 修改后的数组:\n',result)
result1 = np.append(arr1,[[55],[66],[77],[88]]) #axis 为空, 将两个数组变为一维数组后合并
result2 = np.append(arr1,[[55,66],[77,88]])
result3 = np.append(arr1,[[55,66,77,88]])
print('axis 为空 修改后的数组:\n',result1)
print('axis 为空 修改后的数组:\n',result2)
print('axis 为空 修改后的数组:\n',result3)
元素删除
语法:numpy.delete(arr,m,axis = n)
- arr:数组
- m:表示第m+1行 或 m+1列
- axis:对于二维数组来说, axis=0表示删除第m+1行,axis=1表示删除第m+1列
- delete()不修改原数组,返回一个新数组
# -*- coding:utf-8 -*-
import numpy as np
print('一维数组')
nums = [1,2,3,4,5] #一维数组
arr = np.array(nums)
print('原数组\n',arr)
reslut = np.delete(arr,3)#删除第4个元素
print('修改后的数组',reslut)
print('----------分隔线----------')
print('二维数组')
nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]] #二维数组
arr1 = np.array(nums)
print('原数组\n',arr1)
result = np.delete(arr1,2,axis = 0) #axis = 0 删除第3行元素
print('axis = 0 修改后的数组:\n',result)
result = np.delete(arr1,2,axis = 1) #axis = 1 删除第3列元素
print('axis = 1 修改后的数组:\n',result)
数组切片
使用切片来获取数组的某一部分
截取范围 : [m,n)
# -*- coding:utf-8 -*-
import numpy as np
print('一维数组')
nums = [1,2,3,4,5] #一维数组
arr = np.array(nums)
print('原数组\n',arr)
print('切片后的数组',arr[1:3]) #切片获取第2到第3个元素
print('----------分隔线----------')
print('二维数组')
nums = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]] #二维数组
arr1 = np.array(nums)
print('原数组\n',arr1)
print('获取第1行所有元素\n',arr1[0,:]) #获取第1行所有元素
print('获取第1列所有元素\n',arr1[:,0]) #获取第1列所有元素
print('获取第1行第2到第3个元素\n',arr1[0,1:3])#获取第1行第2到第3个元素
print('获取第1行 第2行及第1列第2列第元素\n',arr1[0:2,0:2])#获取第1行 第2行及第1列第2列第元素
# -*- coding:utf-8 -*-
import numpy as np
print('多维数组')
nums = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]] #三维数组
arr = np.array(nums)
print('原数组\n',arr)
print('NumPy支持使用...来表示剩余的轴')
print(arr[0,...]) #等价与 arr[0,:,:]
print(arr[...,0]) #等价与 arr[:,:,0]
print(arr[:,0,:])
学习参考资料:《从0到1Python数据分析》