python numpy基本操作总结

1.维度相关

.ndim :维度
.shape :各维度的尺度 (2,5)
.size :元素的个数 10
.itemsize :每个元素的大小,以字节为单位
reshape()

>>> np.zeros([2,3])
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> np.zeros([2,3]).ndim
2
>>> np.zeros([2,3]).shape
(2, 3)
>>> np.zeros([2,3]).size
6
>>> np.zeros([2,3],dtype="float32").itemsize
4
>>> np.arange(8).reshape(2,4)
array([[0, 1, 2, 3],
       [4, 5, 6, 7]])

shape引用

>>> np.ones([2,3]).shape[0]
2
>>> np.ones([2,3]).shape[1]
3
2. 类型相关

.dtype :元素的类型 dtype(‘int32’)
.astype : 改变元素类型

>>> np.zeros([2,3]).dtype
dtype('float64')
>>> np.zeros([2,3],dtype="float32").dtype
dtype('float32')

>>> np.ones([2,3]).astype(np.int).dtype
dtype('int32')
3. 矩阵生成相关

.array():生成矩阵

>>> np.array([[1,2,4],[4,5,6]])
array([[1, 2, 4],
       [4, 5, 6]])

np.arange(n) ; 元素从0到n-1的ndarray类型
np.linspace(1,10,4): 根据起止数据等间距地生成数组
np.linspace(1,10,4, endpoint = False):endpoint 表示10是否作为生成的元素

>>> np.arange(5)
array([0, 1, 2, 3, 4])
>>> np.arange(0,1,0.1)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])
>>> np.linspace(0,1,10)
array([ 0.        ,  0.11111111,  0.22222222,  0.33333333,  0.44444444,
        0.55555556,  0.66666667,  0.77777778,  0.88888889,  1.        ])
>>> np.linspace(0,1,11)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ])
>>> np.linspace(0,1,10,endpoint=False)
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])

下面这几个shape必须输入[]格式
np.ones(shape): 生成全1
np.zeros((shape), ddtype = np.int32) : 生成int32型的全0
np.full(shape, val): 生成全为val
np.eye(n) : 生成单位矩阵

>>> np.full([2,3],4)
array([[4, 4, 4],
       [4, 4, 4]])
>>> np.full([2,3],4,dtype=np.int64)
array([[4, 4, 4],
       [4, 4, 4]], dtype=int64)
>>> np.eye(3)
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

np.ones_like(a) : 按数组a的形状生成全1的数组
np.zeros_like(a): 同理
np.full_like (a, val) : 同理

>>> np.ones_like(a)
array([[1, 1, 1],
       [1, 1, 1]])
>>> np.zeros_like(a)
array([[0, 0, 0],
       [0, 0, 0]])
>>> np.full_like(a,5)
array([[5, 5, 5],
4. 切片和索引

[起始:终止(不含有):步长]
其余和matlab类似

>>> a=np.array([1,2,3,4,5])
>>> a[1:4:2]
array([2, 4])

>>> a=np.array([[1,2,3],[4,5,6]])
>>> a[1,:]
array([4, 5, 6])
5. 计算

np.abs(a) np.fabs(a) : 取各元素的绝对值,前者返回int,后者返回float
np.sqrt(a) : 计算各元素的平方根
np.square(a): 计算各元素的平方
np.log(a) np.log10(a) np.log2(a) : 计算各元素的自然对数、10、2为底的对数
np.ceil(a) np.floor(a) : 计算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整)
np.rint(a) : 各元素 四舍五入
np.modf(a) : 将数组各元素的小数和整数部分以两个独立数组形式返回
np.exp(a) : 计算各元素的指数值
np.sign(a) : 计算各元素的符号值 1(+),0,-1(-)
np.maximum(a, b) np.fmax() : 比较(或者计算)元素级的最大值
np.minimum(a, b) np.fmin() : 取最小值
np.mod(a, b) : 元素级的模运算
np.copysign(a, b) : 将b中各元素的符号赋值给数组a的对应元素

6.random库
>>> np.random.rand(2,3)
array([[ 0.05744458,  0.09174029,  0.79843883],
       [ 0.3283518 ,  0.69069531,  0.17128676]])
  • np.random.rand [0,1)之间 随机浮点数组
  • np.random.randn 正态分布 浮点数组

猜你喜欢

转载自blog.csdn.net/qsdzxp/article/details/82152778