numpy笔记

安装

pip install numpy

导入numpy

import numpy as np

常用方法

np.ones(shape=(2, 3), dtype="float")
# np.ones(shape, dtype=None, order='C')
# 产生全为0的矩阵

np.zeros(shape=(5, 6), dtype="int")
# np.zeros(shape, dtype=float, order='C')
# 产生全为1的矩阵

np.full(shape=(3, 4), fill_value=4)
# np.full(shape, fill_value, dtype=None, order='C')
# 全为指定值的矩阵

np.eye(4, 5, k=-2)
# np.eye(N, M=None, k=0, dtype=<class 'float'>, order='C')
# 对角线为1的矩阵(不一定是单位矩阵),k控制对角线的偏移,负数向下偏移,正数向上

np.arange(0, 100, 2)
# 与python中range一样

np.random.randint(0, 100, size=(3, 2, 2))
# randint(low, high=None, size=None, dtype='l')
# 随机整数

np.random.normal(loc=10, scale=3, size=(10, 3))
# normal(loc=0.0, scale=1.0, size=None)
# 正态分布,loc是平均值,scale表示方差

np.random.randn(10, 10)
# randn(d0, d1, ..., dn),每一个参数代表每一个维度对应的元素个数
# 标准正态分布, 产生10x10的随机标准正态分布数

级联操作

# 级联操作,水平级联(axis=1)要求行数一致,垂直级联(axis=0)要求列数一致
a1 = np.random.randint(0, 100, size=(3, 4))
a2 = np.random.randint(0, 100, size=(3, 4))
np.concatenate((a1, a2), axis=0) # 等同于np.vstack()
np.concatenate((a1, a2), axis=1) # 等同于np.hstack()
np.hstack((a1, a2))
np.vstack((a1, a2))

广播机制

# 广播机制
# 当运算的矩阵的shape不一致时,numpy自动启动广播机制,目的是让两个运算的矩阵的shape一致
# 规则1:补足缺失的维度
# 规则2:缺失元素用已有元素填充
# 广播机制的不适用情况:再补数据的时候,不确定应该用什么数据去补足

# 算术运算
arr1 = np.random.randint(0, 100, size=(5, 6))
arr2 = np.random.randint(0, 100, size=(5, 6))
arr3 = np.random.randint(0, 100, size=(5, 5))

arr1 + 1 # 每个元素加1
arr1 + arr2 # 对应位置元素相加
arr1 + arr3
# 此时广播机制失效,原因:在arr3后面补足一列时,不知道要从已有的数据中选择哪一列进行补足
arr1 * arr2 # 普通的数乘,对应位置相乘
np.dot(arr3, arr1) 
# 矩阵乘积(点乘),必须满足,第一个矩阵的列数等于第二个矩阵的行数
上一篇:paddlepaddle关于使用dropout小案例


下一篇:Pandas数据分析笔记1 Series