numpy 基本教程
numpy 是开源的python科学计算库,用于快速处理任意维度的数组。
基本介绍
numpy 使用 ndarray 对象处理数组。
ndarray的优势: 内存块分格,支持并行化运算,使用c语言底层编写,解除GIL
ndarray的属性:
shape: 形状,几行几列
ndim:维度
size: 元素数量
itemsize: 一个数组元素的长度
dtype: 数组元素的类型
ndarray的形状: 0维 1维 2维。。。。
基本操作 :
生成数组:
生成01数组: np.ones([,]) np.zeros([,]) zeros_like
现有数组生成: np.array() np.asarray() 浅拷贝 np.copy() 深拷贝
生成固定范围的数组:
np.linspace(start,stop,num)
np.arange(start,stop,step) 结束(不包含)
生成随机数组:
np.random.uniform(low,high,size) 均匀分布
np.random.normal(loc,scale,size) 状态分布 loc:均值 scale:标准差
np.random.randint(1,10,[3,5]) # 最小 最大 几行几列 int
形状:
T:转置 ,行列转换
reshape: 产生新的对象 st.reshape(-1,10) 必须是10的倍数
resize: 自身进行改变
st2=st.astype(np.int32) 类型修改
数组去重: np.unique(temp)
运算:
逻辑运算: st > 1 st[st >1] st[st>1]=2
通用判断函数: np.all(st >-10) np.any(st>0)
三元运算符: np.where(st >0 ,1,0)
np.where(np.logical_and(st>0,st<0.5),1,0)
np.where(np.logical_or(st<0,st>0.5),1,0)
统计运算:max min median std 标准差 mean var 方差 argmax 最大值下标 argmin
st.max(axis=0)
矩阵:
矩阵 向量
m行 N列 * N行 L列 = M行 L列
a*b 不等于 b*a a*(b*c) = (A*B)*c
逆矩阵 a*b=单位矩阵
1 0 0
0 1 0
0 0 1
转置
数组间运算:
a = np.array([2,1,2,3,4])
a/2
广播机制
维度相同 或者 shape 对应的一个是1 (右到左边看)
矩阵计算:
a=np.array([[80,86],[82,80],[85,78]])
b=np.array([[0.7],[0.3]])
np.matmul(a,b)
np.dot(a,b) # 支持点乘
版权声明本文仅代表作者观点,不代表本站立场。本文系作者授权发表,未经许可,不得转载。图文来源网络,侵权删!