Numpy的“增”操作
import numpy as np
arr1 = np.array([1,2,3,4])
arr1
array([1, 2, 3, 4])
arr2 = np.array([[1,2,3,4], [4,5,6,7], [7,8,9,10]])
arr2
array([[ 1, 2, 3, 4],
[ 4, 5, 6, 7],
[ 7, 8, 9, 10]])
np.linspace(0, 1, 12)
array([0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
np.logspace(0, 2, 20)
array([ 1. , 1.27427499, 1.62377674, 2.06913808,
2.6366509 , 3.35981829, 4.2813324 , 5.45559478,
6.95192796, 8.8586679 , 11.28837892, 14.38449888,
18.32980711, 23.35721469, 29.76351442, 37.92690191,
48.32930239, 61.58482111, 78.47599704, 100. ])
np.zeros((2,3))
array([[0., 0., 0.],
[0., 0., 0.]])
np.eye(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
np.diag([1,2,3,4])
array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]])
Numpy的“查”操作
arr2.shape
(3, 4)
arr2.ndim
2
print(arr2.size)
print(arr2.dtype)
print(arr2.itemsize)
12
int32
4
np.float64(56)
56.0
np.int8(42.00)
42
np.bool(0)
False
np.float(True)
1.0
np.float(False)
0.0
数组的索引查找
arr2[0]
array([1, 2, 3, 4])
arr2[0][3]
4
arr2[1][::2]
array([4, 6])
arr2[:,2]
array([ 3, 5, 7, 10])
arr2[2][::-1]
array([10, 9, 8, 7])
arr2[0,0:3]
array([1, 2, 3])
数组的“改”操作
arr2.shape
(3, 4)
arr2
array([[ 1, 2, 3, 4],
[ 4, 5, 6, 7],
[ 7, 8, 9, 10]])
arr2.shape=4, 3
arr2
array([[ 1, 2, 3],
[ 4, 4, 5],
[ 6, 7, 7],
[ 8, 9, 10]])
arr1.reshape(2, 2)
array([[1, 2],
[3, 4]])
arr = np.arange(24).reshape(6,4)
arr
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
arr.ravel()
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23])
arr.flatten()
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23])
arr.flatten('F')
array([ 0, 4, 8, 12, 16, 20, 1, 5, 9, 13, 17, 21, 2, 6, 10, 14, 18,
22, 3, 7, 11, 15, 19, 23])
组合数组
arr3 = np.array([5,6,7,8])
np.hstack((arr1,arr3))
array([1, 2, 3, 4, 5, 6, 7, 8])
np.vstack((arr1,arr3))
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
np.concatenate((arr1, arr3), axis = 0)
array([1, 2, 3, 4, 5, 6, 7, 8])
np.concatenate((arr1, arr3), axis = 1)
array([1, 2, 3, 4, 5, 6, 7, 8])
np.concatenate((arr1, arr3))
array([1, 2, 3, 4, 5, 6, 7, 8])
切割数组
np.hsplit(arr3, 2)
[array([5, 6]), array([7, 8])]
np.vsplit(arr2,2)
[array([[1, 2, 3],
[4, 4, 5]]), array([[ 6, 7, 7],
[ 8, 9, 10]])]
np.split(arr2, 2, axis=0)
[array([[1, 2, 3],
[4, 4, 5]]), array([[ 6, 7, 7],
[ 8, 9, 10]])]
Numpy生成数组
np.random.random(100)
array([0.84383225, 0.31684469, 0.08856711, 0.04319333, 0.86852226,
0.20791665, 0.49158186, 0.858481 , 0.29135487, 0.0188996 ,
0.34713081, 0.40762266, 0.23051619, 0.61538688, 0.32449647,
0.8055476 , 0.62220307, 0.85331657, 0.42171959, 0.22940534,
0.06994526, 0.14758006, 0.86721907, 0.58740296, 0.47191403,
0.65336687, 0.8234364 , 0.03793615, 0.17165016, 0.78487349,
0.36374087, 0.88458454, 0.64747145, 0.65061754, 0.18418836,
0.80629734, 0.40985309, 0.22310008, 0.18578494, 0.2641264 ,
0.42551478, 0.8905454 , 0.73879022, 0.47774137, 0.13643535,
0.08310071, 0.30112218, 0.48287822, 0.56243443, 0.08108347,
0.50414937, 0.05712337, 0.83302187, 0.19416904, 0.03761042,
0.68225787, 0.35105037, 0.058352 , 0.96915812, 0.74856777,
0.37020492, 0.78181459, 0.49192134, 0.2217529 , 0.16114479,
0.03944376, 0.17294999, 0.86755852, 0.17866927, 0.79347063,
0.70217067, 0.46860523, 0.95216746, 0.75663194, 0.73213156,
0.26483869, 0.82492269, 0.36818667, 0.21358502, 0.54310758,
0.71833282, 0.76036529, 0.61430563, 0.64555748, 0.41857613,
0.86349082, 0.53584084, 0.86918066, 0.07600797, 0.67556373,
0.45482433, 0.97359206, 0.26534372, 0.34046382, 0.68647192,
0.47920051, 0.02582498, 0.88214141, 0.93580284, 0.65094823])
np.random.randn(10,5)
array([[-1.16013847, 0.38995915, 0.3061904 , -0.52197148, 1.18770239],
[-1.78065555, -1.25306603, 1.12116724, -0.06588376, -1.00235648],
[ 0.57255204, 1.42903828, -0.08233707, -0.40280985, -0.87059519],
[-1.06024269, -0.27171951, -0.96247977, -0.78904372, -1.90071377],
[ 1.05302149, -1.31409181, -0.64072261, 0.8135406 , -0.47246574],
[-1.85405428, 1.50018216, 1.82790837, -0.06712163, -1.18952417],
[ 0.76151658, 0.24335155, -0.06020579, 4.0438185 , 0.58687847],
[-0.16659596, -0.34726012, 0.14048369, -1.43914682, 0.65015638],
[-1.08442777, 0.68221767, 0.09641345, 0.19797142, -0.76984432],
[ 0.19865695, 0.77113551, 1.77447236, -0.31251604, -0.25949725]])
np.random.randint(2,10, size = [2,5])
array([[5, 5, 5, 5, 9],
[5, 3, 9, 7, 4]])
Numpy矩阵操作
matr1 = np.mat("1 2 3; 4 5 6; 7 8 9 ")
matr1
matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matr2 = np.matrix([[1,2,3], [4,5,6], [7,8,9]])
matr2
matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matr1 * 3
matrix([[ 3, 6, 9],
[12, 15, 18],
[21, 24, 27]])
matr1 + matr2
matrix([[ 2, 4, 6],
[ 8, 10, 12],
[14, 16, 18]])
matr1 * matr2
matrix([[ 30, 36, 42],
[ 66, 81, 96],
[102, 126, 150]])
np.dot(matr1, matr2)
matrix([[ 30, 36, 42],
[ 66, 81, 96],
[102, 126, 150]])
matr1.T
matrix([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
matr1.H
matrix([[1, 4, 7],
[2, 5, 8],
[3, 6, 9]])
matr1.I
matrix([[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15],
[-6.30503948e+15, 1.26100790e+16, -6.30503948e+15],
[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15]])
File "<ipython-input-87-c98555daeefd>", line 1
matr1 +
^
SyntaxError: invalid syntax
X1 = np.random.randint(0,1, size = [3,100])
W1 = np.random.randint(0,1, size = [5,3])
b1 = np.zeros((5,1))
W2 = np.random.randint(0,1, size = [2,5])
b2 = np.zeros((2,1))
A1 = np.dot(W1,X1)+b1
A1
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0.]])
A2 = np.dot(W2,A1)+b2
A2.shape
(2, 100)
print(np.___version__)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-100-da177e267561> in <module>()
----> 1 print(np.___version__)
AttributeError: module 'numpy' has no attribute '___version__'
Numpy统计分析
arr4 = np.array([[3,7], [9,1]])
arr4
array([[3, 7],
[9, 1]])
arr4.sort()
arr4
array([[3, 7],
[1, 9]])
arr4.sort(axis=0)
arr4
array([[1, 7],
[3, 9]])
arr5 = np.array([4,2,3,1])
arr5.argsort()
array([3, 1, 2, 0], dtype=int64)
nm = ('a', 'b', 'c', 'c')
dv = ('z', 'x', 'y', 'o')
ind = np.lexsort((dv, nm))
print([nm[i] + "," + dv[i] for i in ind])
['a,z', 'b,x', 'c,o', 'c,y']
arr6 = np.array([1,1,2,2,3,3])
np.unique(arr6)
array([1, 2, 3])
np.tile(arr6, 3)
array([1, 1, 2, 2, 3, 3, 1, 1, 2, 2, 3, 3, 1, 1, 2, 2, 3, 3])
np.repeat(arr6, 2, axis = 0)
array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3])
arr2.sum()
66
arr2.sum(axis = 0)
array([19, 22, 25])
arr2.sum(axis = 1)
array([ 6, 13, 20, 27])
arr6.argmax()
4
arr7 = np.array([0.1, 0.9])
arr7.argmax()
1