1 numpy.empty
empty(shape[, dtype=float, order='C'])
创建指定 shape 和dtype 的未初始化数组
返回:ndarray。
说明:order = ‘C’ 或 ‘F' 'C'是按行的C风格的数组,’F‘为按列的Fortran 风格数组。
import numpy as np a = np.empty((3,3),dtype = int) print(a)
运行
[[ 6553665 7471204 7536741] [ 4587635 7143521 7077993] [ 120 1702126437 1970217060]]
注:
空数组创建时的元素是随机产生的,并未将元素进行初始化设置,因此运行可能会比zeros和ones快一点,但是他需要用户手动设置数组中的所有值,谨慎使用
2 numpy.zeros
zeros(shape[, dtype=float, order='C'])
返回各元素为0,形状为shape,数据类型为dtype的数组
import numpy as np a = np.zeros(3) print(a) #[0. 0. 0.] b = np.zeros((3,),dtype=int) print(b) #[0 0 0] c = np.zeros((2,2),dtype='c8') print(c) # [[0.+0.j 0.+0.j] # [0.+0.j 0.+0.j]] d = np.zeros((2,),dtype=[('x','i4'),('y','i4')]) #自定义类型 print(d) #[(0, 0) (0, 0)] print(d.dtype) #[('x', '<i4'), ('y', '<i4')]
3 numpy.ones
ones(shape[, dtype=float, order='C'])
返回各元素为1,形状为shape,数据类型为dtype的数组
import numpy as np a = np.ones(2) print(a) #[1. 1.] b = np.ones((2,1),dtype='i8') print(b) # [[1] # [1]] s = (2,2) c = np.ones(s) print(c) # [[1. 1.] # [1. 1.]]
4 numpy.eye
eye(N[, M=None, k=0, dtype=<class 'float'>, order='C'])
实际上,行数和列数都等于n的矩阵称为n阶矩阵或n阶方阵,主对角线上的元素都为1的方阵称为之单位矩阵或单位阵
N - 矩阵的行数
M - 矩阵的列数,若为None,则默认为N列
k - 对角线的索引,0(默认)主对角线,正值上对角线,负值下对角线
import numpy as np a = np.eye(2) print(a) # [[1. 0.] # [0. 1.]] b = np.eye(3,k=-1,dtype=int) print(b) # [[0 0 0] # [1 0 0] # [0 1 0]]
5 numpy.full
full(shape, fill_value[, dtype=None, order='C'])
返回各元素值为fill_value(标量),形状为shape,数据类型为dtype的数组
import numpy as np a = np.full((2,2),np.inf) print(a) # [[inf inf] # [inf inf]] b = np.full((2,2),5) print(b) # [[5 5] # [5 5]]
注:
inf - 数值(numeric),无穷(Infinity)数值
在numpy - core - numeric.py中
# set the default values _setdef() Inf = inf = infty = Infinity = PINF nan = NaN = NAN False_ = bool_(False) True_ = bool_(True)
注:
inf - 正无穷,float类型
-inf - 负无穷 ,float类型
import numpy as np b = np.inf print(b) #inf c = b>9999999999999999999999 print(c) #True
参考:
NumPy数组创建例程 和官方文档 (numpy-ref-1.14.5.pdf)3.1.1 Ones and zeros