)
数组的创建1.创建指定数组适用于已知数组内元素具体数值import numpy as np arrnp.array([[1,2,3],[4,5,6],[7,8,9]]) print(arr) #([a,b,c]) shape(3,3)2.创建递增数组np.arange()numpy.arange([start, ]stop, [step, ]dtypeNone, *, deviceNone, likeNone) #前两位数字 #[start, ]stop代表半开区间表示不包含结束值的数字 #第三位数字 #[step, ]dtypeNone代表步长指的是等差数列的差 #公差为510到100内生成 arr2 np.arange(10,100,5) print(arr2) 结果[10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95]3.创建同值数组np.zeros()该方法需要传入shape参数shape参数详解可以看上一节numpy.ones(shape, dtypeNone, orderC, *, deviceNone, likeNone)[源代码] arr3 np.zeros((1,3)) print(arr3) 结果[[0. 0. 0.]]上述代码中输出结果并不为整数型而是浮点型笔者猜测这是为了避免插入的浮点数被截断4.创建随机数组伪随机数初始值种子算法np.random系列函数该方法仍然需要传入shape参数arr1np.arange(0,10) arr2arr1[0:-2]#数字代表的是位置从0这个位置到-2指代的位置 print(arr1) print(arr2) 结果[0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7] arr2arr1[0:-2:2]#每隔两个位置形如arr2arr1[0:-2:2]第三位数指的是隔两个位置采样跳跃采样矩阵的切片矩阵既有行列所以都要切行向量和列向量都切形式arr[0:1,0:1] arr[::2,::1]#访问矩阵切片 arr np.array([[1,2,3],[2,4,2],[55,55,22]]) arr1arr[0:1,1:2] print(arr) print(arr1) 结果 [[ 1 2 3] [ 2 4 2] [55 55 22]] [[2]]arr2arr[::2,::1]#行向量每隔两个元素列向量每隔一个元素根据上述矩阵切片可以做到提取某一行或者某一列arr np.array([[1,2,3],[2,4,2],[55,55,22]]) #arr3arr[::3,::1] # arr3arr[3,:] arr3arr[3] print(arr3) 结果 [[1 2 3]]注意提取列不可以简写此外提取列的时候出来的结果是列向量arr np.array([[1,2,3],[2,4,2],[55,55,22]]) arr1arr[:,1]提取出来的列的形式是向量如果想要它成为矩阵arr1arr[:,1:2] 或者 arr1arr[:,1].reshape(-1,1)数组切片仅是视图不会创建新的变量arrnp.array([1,2,3,4,5,6,7,8,9]) cutarr[:2] cut[0]12 print(cut) print(arr)上述代码中切片结果改变原数组也会发生改变这样就不会造成大量内存的浪费深度学习中arr[:]表达式代替arr表达式当然如果真的需要为切片生成新的变量arrnp.array([1,2,3,4,5,6,7,8,9]) cutarr[:2] cpcut.copy()#复制备份切片 cp[1]222 print(cp)#改变备份结果不会影响原数组 print(arr)数组赋值也是绑定同上arr2arr#将arr赋值给arr2 arr2[2]2 print(arr2) print(arr)#结果相互影响数组的变形转置.T方法只对矩阵有效如果想要把行向量转为列向量就要先用reshape方法转为矩阵arrnp.arange(5,10).reshape(1,-1).T arr2arr[:,0] print(arr2)翻转方法有两个上下翻转np.flipud() 意思是flip up-down左右翻转np.fliplr() 意思是flip left-right在数学中向量是竖着放置的arrnp.arange(10).reshape(2,5) print(arr) 结果 [[0 1 2 3 4] [5 6 7 8 9]] arr1np.fliplr(arr) print(arr1) 结果 [[4 3 2 1 0] [9 8 7 6 5]]#向量 arr2np.arange(10) arr3np.flipud(arr2) print(arr2) 结果 [0 1 2 3 4 5 6 7 8 9] print(arr3) 结果 [9 8 7 6 5 4 3 2 1 0]变形方法是 .reshape()拼接向量的拼接numpy.concatenate(arrays,/,axis0,outNone,*,dtypeNone,castingsame_kind)参数解释前两个参数给的是需要拼接的向量axis0指的是设置按照哪个轴方向进行拼接一般默认是轴0arr np.arange(10) arr1np.arange(12) arr3np.concatenate((arr,arr1)) print(arr3)矩阵的拼接两个矩阵可以按照不同的维度拼接但拼接的时候必须注意维度axis参数要吻合此外向量和矩阵之间不能相互拼接分裂向量的分裂将得到更短的向量方法 np.split()numpy.split(ary,indices_or_sections,axis0)参数解释第一个参数是要分裂的向量第二个参数是分裂的起始位置和终止位置第三个参数是轴矩阵的分裂依旧要设定分裂的维度