1 1-2-3-矩阵属性 2 #X[:, m:n],即取所有数据的第m到n-1列数据,含左不含右 3 #X[n,:]是取第1维中下标为n的元素的所有值,即第n行的元素 4 #X[:,0]就是取所有行的第0个数据, X[:,1] 就是取所有行的第1个数据。 5 #shape[0]:返回矩阵第一维度的长度,shape[1]返回矩阵第二维度的长度,它的输入参数可以使一个整数表示维度,也可以是一个矩阵 6 import numpy as np 7 a=np.arange(15).reshape(3,5) 8 print(a) 9 a.shape 10 a.ndim#矩阵的维度 11 [[ 0 1 2 3 4] 12 [ 5 6 7 8 9] 13 [10 11 12 13 14]] 14 (3, 5) 15 2 16 17 1-2-4-矩阵操作 18 import numpy as np 19 np.zeros((3,4))#初始化矩阵(所有都是0) 20 np.ones((2,3,4),dtype=np.int32)#初始化矩阵数字及数字类型 21 np.arange(10,30,5)#从10开始每次递增5一直到最后一个数小于30 22 np.random.random((2,3))#2行三列的随机矩阵 23 array([[0., 0., 0., 0.], 24 [0., 0., 0., 0.], 25 [0., 0., 0., 0.]]) 26 array([[[1, 1, 1, 1], 27 [1, 1, 1, 1], 28 [1, 1, 1, 1]], 29 30 [[1, 1, 1, 1], 31 [1, 1, 1, 1], 32 [1, 1, 1, 1]]]) 33 array([10, 15, 20, 25]) 34 array([[0.9814129 , 0.90070431, 0.51666139], 35 [0.92431273, 0.83745976, 0.46897678]]) 36 37 from numpy import pi 38 np.linspace(0,2*pi,100)#从0到2*pi中间取出100个值 39 A=np.array([[1,1],[0,1]]) 40 B=np.array([[2,0],[3,4]]) 41 print(A) 42 print(A*B)#求内积(对应位置相乘) 43 print(A.dot(B))#矩阵相乘 44 print(np.dot(A,B))#矩阵相乘 45 array([0. , 0.06346652, 0.12693304, 0.19039955, 0.25386607, 46 0.31733259, 0.38079911, 0.44426563, 0.50773215, 0.57119866, 47 0.63466518, 0.6981317 , 0.76159822, 0.82506474, 0.88853126, 48 0.95199777, 1.01546429, 1.07893081, 1.14239733, 1.20586385, 49 1.26933037, 1.33279688, 1.3962634 , 1.45972992, 1.52319644, 50 1.58666296, 1.65012947, 1.71359599, 1.77706251, 1.84052903, 51 1.90399555, 1.96746207, 2.03092858, 2.0943951 , 2.15786162, 52 2.22132814, 2.28479466, 2.34826118, 2.41172769, 2.47519421, 53 2.53866073, 2.60212725, 2.66559377, 2.72906028, 2.7925268 , 54 2.85599332, 2.91945984, 2.98292636, 3.04639288, 3.10985939, 55 3.17332591, 3.23679243, 3.30025895, 3.36372547, 3.42719199, 56 3.4906585 , 3.55412502, 3.61759154, 3.68105806, 3.74452458, 57 3.8079911 , 3.87145761, 3.93492413, 3.99839065, 4.06185717, 58 4.12532369, 4.1887902 , 4.25225672, 4.31572324, 4.37918976, 59 4.44265628, 4.5061228 , 4.56958931, 4.63305583, 4.69652235, 60 4.75998887, 4.82345539, 4.88692191, 4.95038842, 5.01385494, 61 5.07732146, 5.14078798, 5.2042545 , 5.26772102, 5.33118753, 62 5.39465405, 5.45812057, 5.52158709, 5.58505361, 5.64852012, 63 5.71198664, 5.77545316, 5.83891968, 5.9023862 , 5.96585272, 64 6.02931923, 6.09278575, 6.15625227, 6.21971879, 6.28318531]) 65 [[1 1] 66 [0 1]] 67 [[2 0] 68 [0 4]] 69 [[5 4] 70 [3 4]] 71 [[5 4] 72 [3 4]] 73 74 1-2-5-常用函数 75 C=np.arange(3) 76 print(np.exp(C))#e的C次幂 77 print(np.sqrt(C))#C的根号 78 [1. 2.71828183 7.3890561 ] 79 [0. 1. 1.41421356] 80 81 D=np.array([[6,7,2,9],[6,0,5,2],[9,0,9,6]]) 82 print(D.ravel())#把矩阵拉长 83 D.shape=(6,2)#改变矩阵形状 84 print(D) 85 print(D.T)#矩阵转置 86 [6 7 2 9 6 0 5 2 9 0 9 6] 87 [[6 7] 88 [2 9] 89 [6 0] 90 [5 2] 91 [9 0] 92 [9 6]] 93 [[6 2 6 5 9 9] 94 [7 9 0 2 0 6]] 95 96 97 a=np.floor(10*np.random.random((2,2))) 98 b=np.floor(10*np.random.random((2,2))) 99 print(a) 100 print(b) 101 print(np.vstack((a,b)))#按行拼接矩阵 102 print(np.hstack((a,b)))#按列拼接矩阵 103 [[8. 1.] 104 [5. 7.]] 105 [[6. 3.] 106 [0. 6.]] 107 [[8. 1.] 108 [5. 7.] 109 [6. 3.] 110 [0. 6.]] 111 [[8. 1. 6. 3.] 112 [5. 7. 0. 6.]] 113 a=np.floor(10*np.random.random((2,12))) 114 print(a) 115 print(np.hsplit(a,3))#按列切分成三份 116 print(np.hsplit(a,(3,4)))#按列从3列切一刀,4列且一刀 117 118 [[3. 4. 8. 7. 2. 7. 4. 6. 5. 6. 3. 0.] 119 [0. 1. 4. 7. 3. 7. 9. 0. 3. 0. 6. 3.]] 120 [array([[3., 4., 8., 7.], 121 [0., 1., 4., 7.]]), array([[2., 7., 4., 6.], 122 [3., 7., 9., 0.]]), array([[5., 6., 3., 0.], 123 [3., 0., 6., 3.]])] 124 [array([[3., 4., 8.], 125 [0., 1., 4.]]), array([[7.], 126 [7.]]), array([[2., 7., 4., 6., 5., 6., 3., 0.], 127 [3., 7., 9., 0., 3., 0., 6., 3.]])] 128 data=np.sin(np.arange(20)).reshape(5,4) 129 print(data) 130 ind=data.argmax(axis=0)#axis=0:(维度为1)按列操作,求出每一列的最大值,返回索引值 131 print(ind) 132 data_max=data[ind,range(data.shape[1])] 133 print(data_max) 134 [[ 0. 0.84147098 0.90929743 0.14112001] 135 [-0.7568025 -0.95892427 -0.2794155 0.6569866 ] 136 [ 0.98935825 0.41211849 -0.54402111 -0.99999021] 137 [-0.53657292 0.42016704 0.99060736 0.65028784] 138 [-0.28790332 -0.96139749 -0.75098725 0.14987721]] 139 [2 0 3 1] 140 [0.98935825 0.84147098 0.99060736 0.6569866 ] 141 142 a=np.arange(0,40,10) 143 print(a) 144 b=np.tile(a,(4,2))#将a进行4行2列排列 145 print(b) 146 a=np.array([[4,3,5],[2,1,2]]) 147 print(a) 148 b=np.sort(a,axis=1)#按行进行排列 149 print(b) 150 a.sort(axis=1)#按行进行排列 151 print(a) 152 a=np.array([4,3,1,2]) 153 j=np.argsort(a)#排列之后对应索引 154 print(j) 155 print(a[j]) 156 157 [ 0 10 20 30] 158 [[ 0 10 20 30 0 10 20 30] 159 [ 0 10 20 30 0 10 20 30] 160 [ 0 10 20 30 0 10 20 30] 161 [ 0 10 20 30 0 10 20 30]] 162 [[4 3 5] 163 [2 1 2]] 164 [[3 4 5] 165 [1 2 2]] 166 [[3 4 5] 167 [1 2 2]] 168 [2 3 1 0] 169 [1 2 3 4]
1-numpy笔记
猜你喜欢
转载自blog.csdn.net/qq_37706228/article/details/82949618
今日推荐
周排行