import numpy as np n1 = np.array([[1,2,3],[6,5,4]]) print(n1.shape) print("np.arange") n2 = np.arange(1,12,0.4) print(n2) n2 = np.linspace(1,12,4) print(n3) n2 = np.linspace(1,12,5) print(n4) print("np.arange 不带步长参数") print(np.arange(10)) (2, 3) np.arange [ 1. 1.4 1.8 2.2 2.6 3. 3.4 3.8 4.2 4.6 5. 5.4 5.8 6.2 6.6 7. 7.4 7.8 8.2 8.6 9. 9.4 9.8 10.2 10.6 11. 11.4 11.8] [ 1. 4.66666667 8.33333333 12. ] [ 1. 3.75 6.5 9.25 12. ] np.arange 不带步长参数 [0 1 2 3 4 5 6 7 8 9]
上面程序的注释:
n1:二维矩阵
n2:1到12,不含12, 0.4步长
n3:将1到12 均分为3份,取得4个值,包含1和12。
n4:取得5个值的均分。
不带步长参数,生成从0到参数的整数向量。
import numpy as np n1 = np.array([range(2,4),range(5,8)]) print(n1) #维度不相等,无法成为正常矩阵 n2 = np.array([range(2,4),range(5,7)]) print(n2) #维度相等,成为2*2矩阵 n3 = np.array(range(4)) print(n3) #直接用range赋值 a= [range(2,4),range(5,7)] print(a) #从结果可以看出来,无法用range这样给list赋值 [range(2, 4) range(5, 8)] [[2 3] [5 6]] [0 1 2 3] [range(2, 4), range(5, 7)]
要想声明一个多维矩阵,这样:
numpy.empty(shape, dtype=float, order='C') Return a new array of given shape and type, without initializing entries.
返回一个没有初始化的、用给定的类型/形状生成的向量。shape可以是一个数组/list。
import numpy as np n1 = np.empty([3,3],dtype=int) print(n1) [[ 0 1156 5] [57481984 0 65541] [56251352 0 5]]
未初始化,注意。
1. np.zeros((2, 1)) 2. array([[ 0.], 3. [ 0.]])
用0初始化 zeros
np.random.randn返回一个或一组样本,具有标准正态分布。
import numpy as np n1 = np.zeros((2, 1)) print(n1) print(np.eye(3)) print(np.random.randn(3)) print(sum(np.random.randn(3))) [[0.] [0.]] [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]] [ 0.48451999 -0.24370277 0.00866043] 0.5708764551147599
shuffle,将原来数组打乱,返回值None
1. import numpy as np 2. n1 = np.arange(10) 3. n2 = np.random.shuffle(np.arange(10)) 4. print(n2,n1) 5. 6. None [0 1 2 3 4 5 6 7 8 9]
可以看出,n1被打乱了,就是说原来的数组变样了。