numpy 数组创建例程

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
 
上一篇:P1736 创意吃鱼法 图的DP


下一篇:映射的两种方法