1-numpy笔记

 

  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]

猜你喜欢

转载自blog.csdn.net/qq_37706228/article/details/82949618
今日推荐