Python库-NumPy
NumPy是一个开源的Python科学计算库,用于快速处理任意维度的数组。
创建NumPy数组
#创建一维数组 list1 = [1,2,3,4] array1= np.array(list1)#用python列表创建np数组 array1= np.array(range(10))#用python内置range函数创建np数组 array1= np.arange(0,10,2)#numpy方法 .arange创建np数组 #创建多维数组 list2 = [[1,2],[3,4]] array2 = np.array(list2) array2 = np.arange(1,5).reshape(2,2)
NumPy数组常用属性
print(array2.ndim)#查看数组维度 numpy数组的ndim属性 print(array2.shape)#查看数组形状 print(array2.size)#查看数组中数据个数
多维数组转化为一维数组
array1 = array2.flatten(order = 'C') #默认情况下‘C’以行为主展开 'F'以列为主展开
NumPy数组转换为list列表tolist()方法
f = np.array([[1,2,3,4],[5,6,7,8]]) list_f = f.tolist() #np中tolist()方法将数组变为列表 print(list_f)
NumPy数组的计算
#数组与数之间的计算,由于NumPy的广播机制,加减乘除的值计算到数组所有元素 #NumPy数组之间的计算,当数组维度相同时 t1 = np.arange(24).reshape((6,4)) t2 = np.arange(100,124).reshape((6,4)) print(t1 + t2) print(t1 * t2) output: [[100 102 104 106] [108 110 112 114] [116 118 120 122] [124 126 128 130] [132 134 136 138] [140 142 144 146]] [[ 0 101 204 309] [ 416 525 636 749] [ 864 981 1100 1221] [1344 1469 1596 1725] [1856 1989 2124 2261] [2400 2541 2684 2829]]
NumPy数组的索引及切片
#一维数组,类似list切片 a = np.arange(10) print(a[0]) print(a[0:10]) print(a[0:6:2]) output: 0 [0 1 2 3 4 5 6 7 8 9] [0 2 4]
#多维数组 b = np.arange(24).reshape(4,6) print(b[0]) print(b[0,:]) print(b[0:2,:])#取连续行 print(b[[0,2,3],:])#取不连续行
NumPy数组的添加
a = np.array([[1,2,3],[4,5,6]])
#通过append方法添加 b = np.append(a,[[7,8,9]],axis = 0)#axis = 0,按行添加 c = np.append(a,[[4,5],[7,8]],axis =1)#axis = 1,按列添加
#通过insert方法插入 #np.insert 方法必要参数 (数组,索引,插入的数据) print(np.insert(a,1,[[0,0]],axis = 1)) print(np.insert(a,1,[[7,8,9]],axis = 0)) output: [[1 0 2 3] [4 0 5 6]] [[1 2 3] [7 8 9] [4 5 6]]
NumPy数组常用计算方法
#获取所有数据的最大值 result = np.max(array) #获取某个轴上的最大值 result = np.max(array,axis = 0) #获取某个轴上的最小值 result = np.min(array,axis = 0) #获取某个轴上的平均值 result = np.mean(array,axis = 0) #获取某个轴上的标准差 result = np.std(array,axis = 0)
NumPy数组的转置
array = array.transpose()#NumPy中 .transpose方法实现对数组的转置 array = array.T
Tips:NumPy和Pandas要在实际案例中熟悉,不要强记。官方网站https://www.numpy.org.cn/user/
2020-04-01 17:20 For Leslie Never Forgotten