Numpy基础练习
import numpy as np a = np.array([ [1,2,3], [4,5,6], [7,8,9] ]) b = np.zeros(3) c = np.ones(3) d = np.empty(3)
print(a.ndim)
print(a.shape)
print(a.size)
a = np.arange(0,12,2)
b = a.reshape(2,3)
c = np.linspace(1,10,20)
a = np.array([ [1,2,3], [4,5,6], [7,8,9] ]) b = np.array([ [10,11,12], [13,14,15], [16,17,18] ]) print(a-b) print(a*b) print(a.dot(b)) print(a**2) print(a<3)
[[-9 -9 -9]
[-9 -9 -9]
[-9 -9 -9]]
[[ 10 22 36]
[ 52 70 90]
[112 136 162]]
[[ 84 90 96]
[201 216 231]
[318 342 366]]
[[ 1 4 9]
[16 25 36]
[49 64 81]]
[[ True True False]
[False False False]
[False False False]]
a = np.array([ [1,2,3], [4,5,6], [7,8,9] ]) print(np.sum(a)) print(a.sum()) print(a.max()) print(a.min()) print(np.sum(a,axis=1)) print(np.sum(a,axis=0)) print(np.max(a,axis=0)) print(np.mean(a)) print(np.median(a)) print(np.cumsum(a)) print(np.diff(a))
45
45
9
1
[ 6 15 24]
[12 15 18]
[7 8 9]
5.0
5.0
[ 1 3 6 10 15 21 28 36 45]
[[1 1]
[1 1]
[1 1]]
ps:axis为0,列查找;axis=1,行查找。
import numpy as np a = np.array([ [1,2,3], [4,5,6], [7,8,9] ]) print(np.argmin(a)) print(np.argmax(a)) print(np.nonzero(a)) print(np.transpose(a)) print(np.sort(a)) print(np.clip(a,3,6)) print(a[2]) print(a[2,2]) print(a[:,2]) print(a.flatten) for row in a: print(row) for item in a.flat: print(item)
0
8
(array([0, 0, 0, 1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2, 0, 1, 2]))
[[1 4 7]
[2 5 8]
[3 6 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]
[[3 3 3]
[4 5 6]
[6 6 6]]
[7 8 9]
9
[3 6 9]
<built-in method flatten of numpy.ndarray object at 0x10e2997b0>
[1 2 3]
[4 5 6]
[7 8 9]
1
2
3
4
5
6
7
8
9
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ]) b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ]) print(np.vstack((a,b))) print(np.hstack((a,b)))
[[1 2 3]
[4 5 6]
[7 8 9]
[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3 1 2 3]
[4 5 6 4 5 6]
[7 8 9 7 8 9]]
a = np.array([1, 2, 3]) b = a[np.newaxis,:] c = a[:,np.newaxis] print(b) print(b.shape) print(c) print(c.shape)
[[1 2 3]]
(1, 3)
[[1]
[2]
[3]]
(3, 1)
ps:数组转化为矩阵
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ]) b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ]) print(np.concatenate((a,b),axis = 0)) print(np.concatenate((a,b),axis = 1))
[[1 2 3]
[4 5 6]
[7 8 9]
[1 2 3]
[4 5 6]
[7 8 9]]
[[1 2 3 1 2 3]
[4 5 6 4 5 6]
[7 8 9 7 8 9]]
a = np.array([[1, 2, 3,4,5,6], [4, 5, 6,7,8,9], [7, 8, 9,10,11,12] ]) print(np.hsplit(a,3)) print(np.vsplit(a,3)) print(np.array_split(a,2))
[array([[1, 2],
[4, 5],
[7, 8]]), array([[ 3, 4],
[ 6, 7],
[ 9, 10]]), array([[ 5, 6],
[ 8, 9],
[11, 12]])]
[array([[1, 2, 3, 4, 5, 6]]), array([[4, 5, 6, 7, 8, 9]]), array([[ 7, 8, 9, 10, 11, 12]])]
[array([[1, 2, 3, 4, 5, 6],
[4, 5, 6, 7, 8, 9]]), array([[ 7, 8, 9, 10, 11, 12]])]
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9] ]) b = np.array([1, 2, 3]) print(a+b)
[[ 2 4 6]
[ 5 7 9]
[ 8 10 12]]
ps:广播性,操作会在每一行或列执行。不过尾部要兼容。
a = np.array([1,2,1,0,3,0]) print(np.bincount(a)) weights=[0.1,0.1,0.1,0.1,0.1,0.1] print(np.bincount(a,weights,6))
[2 2 1 1]
[0.2 0.2 0.1 0.1 0. 0. ]
a = np.array([[0.2,0.8,-0.5], [0.1,0.4,-0.2], [0.4,0.2,-0.5]]) print(np.argmax(a,axis=0)) print(np.argmax(a,axis=1)) print(np.floor(a)) print(np.ceil(a)) print(np.where(a>0,a,0))
[2 0 1]
[1 1 0]
[[ 0. 0. -1.]
[ 0. 0. -1.]
[ 0. 0. -1.]]
[[ 1. 1. -0.]
[ 1. 1. -0.]
[ 1. 1. -0.]]
[[0.2 0.8 0. ]
[0.1 0.4 0. ]
[0.4 0.2 0. ]]