1、
array=np.array([[1,2,3],[4,5,6]])
print(array)
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size:',array.size)
[[1 2 3]
[4 5 6]]
number of dim: 2
shape:(2, 3)
size: 6
2、
a=np.array([2,3,4],dtype=np.int)
print(a.dtype)#int32
a=np.array([2,3,4],dtype=np.int64)
print(a.dtype)#int64
a=np.array([2,3,4],dtype=np.float)
print(a.dtype)#float64
3、
a=np.array([[2,3,4],
[4,5,6]])
print(a)
[[2 3 4]
[4 5 6]]
a=np.zeros((3,4))
print(a)
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
a=np.ones((3,4),dtype=np.int)
print(a)
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
#numpy.empty(shape, dtype=float, order=’C’)生成随机矩阵
a=np.empty((3,4),dtype=np.int)
print(a)
[[75975464 75975464 0 0]
[ 0 1 0 0]
[ -2 0 1 0]]
4、
a=np.arange(10,20,2)
print(a)
[10 12 14 16 18]
a=np.arange(12).reshape((3,4))
print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
a=np.linspace(1,10,20).reshape(4,5)#20个点
print(a)
[[ 1. 1.47368421 1.94736842 2.42105263 2.89473684]
[ 3.36842105 3.84210526 4.31578947 4.78947368 5.26315789]
[ 5.73684211 6.21052632 6.68421053 7.15789474 7.63157895]
[ 8.10526316 8.57894737 9.05263158 9.52631579 10. ]]
5、numpy的运算
a=np.array([10,20,30,40])
b=np.arange(4)
print(a+b)
print(a-b)
[10 21 32 43]
[10 19 28 37]
c=b**2#平方
print(c)
[0 1 4 9]
d=10*np.sin(a)#sin,cos
print(d)
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
print(b<3)
[ True True True False]
print(b==3)
[False False False True]
a=np.array([[10,20],[20,30]])
b=np.arange(4).reshape((2,2))
print(a)
print(b)
[[10 20]
[20 30]]
[[0 1]
[2 3]]
c=a*b# 10*0,20*1,20*2 30*3
c_dot=np.dot(a,b)#矩阵乘法,10*0+20*2=40,10*1+20*3=70
c_dot_2=a.dot(b)
print(c)
print(c_dot)
print(c_dot_2)
[[ 0 20]
[40 90]]
[[ 40 70]
[ 60 110]]
[[ 40 70]
[ 60 110]]
6、随机数
a=np.random.random((2,4))
print(a)
print(np.sum(a))
print(np.min(a))
print(np.max(a))
[[0.49084047 0.3994232 0.12456215 0.42124604]
[0.56662939 0.62229082 0.16119717 0.65443615]]
3.440625387815034
0.12456215167184626
0.6544361489371282
a=np.random.random((2,4))
print(a)
print(np.sum(a,axis=1))#每一行求和
print(np.min(a,axis=0))#每一列最小值
print(np.max(a,axis=0))
[[0.48543396 0.44156964 0.18328309 0.60659941]
[0.15943441 0.50285126 0.77918291 0.93131485]]
[1.71688609 2.37278344]
[0.15943441 0.44156964 0.18328309 0.60659941]
[0.48543396 0.50285126 0.77918291 0.93131485]
7、
a=np.arange(2,14).reshape((3,4))
print(a)
print(np.argmin(a))
print(np.argmax(a))
print(np.mean(a))
print(a.mean())
print(np.average(a))
print(np.median(a))
print(np.cumsum(a))#累加
print(np.diff(a))#累差
print(np.nonzero(a))#两个数组,一个行,一个列
print(np.sort(a))#每行排序
print(np.transpose(a))#转置
print(a.T)
print((a.T).dot(a))#矩阵乘法
print(np.clip(a,3,7))#小于3的等于3,大于7的等于7
print(np.mean(a,axis=0))#列
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
0
11
7.5
7.5
7.5
7.5
[ 2 5 9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
[1 1 1]
[1 1 1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int32), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int32))
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
[[ 2 6 10]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]]
[[ 2 6 10]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]]
[[140 158 176 194]
[158 179 200 221]
[176 200 224 248]
[194 221 248 275]]
[[3 3 4 5]
[6 7 7 7]
[7 7 7 7]]
[6. 7. 8. 9.]
8、numpy索引
a=np.arange(3,15).reshape((3,4))
print(a)
print(a[2])#输出第三行
print(a[1][1])#输出第二行第二列
print(a[2,1])#和上句功能一样,输出第三行第二列
print(a[2,:])#第三行所有数
print(a[:,1])#第二列多有数
print(a[1,1:2])#第二行第二列
print(a[1,1:3])#第二行第二列和第三列
for row in a:
print(row)
for column in a.T:
print(column)
print(a.flatten())
for item in a.flat:
print(item)
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
[11 12 13 14]
8
12
[11 12 13 14]
[ 4 8 12]
[8]
[8 9]
[3 4 5 6]#第一行
[ 7 8 9 10]#第二行
[11 12 13 14]#第三行
[ 3 7 11]#第一列
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]
[ 3 4 5 6 7 8 9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14
9、array合并
a=np.array([1,1,1])
b=np.array([2,2,2])
print(np.vstack((a,b)))#vertical stack
[[1 1 1]
[2 2 2]]
c=np.vstack((a,b))#vertical stack
print(a.shape,c.shape)
(3,) (2, 3)#前一个是序列,共3个元素;第二个是两行三列
d=np.hstack((a,b))#horizontal stack,左右合并
print(d)
print(d.shape)
[1 1 1 2 2 2]
(6,)
a=np.array([1,1,1])[:,np.newaxis]
b=np.array([2,2,2])[:,np.newaxis]
c=np.vstack((a,b))#vertical stack,上下合并
d=np.hstack((a,b))#horizontal stack,左右合并
print(a)
print(b)
print(c)
print(d)
print(c.shape,d.shape)
[[1]#a
[1]
[1]]
[[2]#b
[2]
[2]]
[[1]#上下合并
[1]
[1]
[2]
[2]
[2]]
[[1 2]#左右合并
[1 2]
[1 2]]
(6, 1) (3, 2)
a=np.array([1,1,1])[:,np.newaxis]
b=np.array([2,2,2])[:,np.newaxis]
c=np.concatenate((a,b,b,a),axis=0)
print(c)
[[1]
[1]
[1]
[2]
[2]
[2]
[2]
[2]
[2]
[1]
[1]
[1]]
10、array分割
a=np.arange(12).reshape((3,4))
print(a)
print(np.split(a,2,axis=1))#切割行,分成多列
print(np.array_split(a,3,axis=1))#不等分割
print(np.vsplit(a,3))#分割行
print(np.hsplit(a,2))#分割列
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
[array([[0, 1],#不等分割
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
10、numpy的copy和deep copy
a=np.arange(4)
print(a)#[0 1 2 3]
b=a
c=a
d=b
print(b)#[0 1 2 3]
print(c)#[0 1 2 3]
print(d)#[0 1 2 3]
a[0]=1
print(a)#[1 1 2 3]
print(b)#[1 1 2 3]
print(c)#[1 1 2 3]
d[1:3]=[22,33]
print(a)#[ 1 22 33 3]
print(b)#[ 1 22 33 3]
b=a.copy()#deep.copy
print(b)# 1 22 33 3]
a[3]=100
print(a)#[ 1 22 33 100]
print(b)#[ 1 22 33 3]