NumPy科学计算
import numpy as np a = np.arange(9) a.dtype
a.shape #shape属性返回一个元组(tuple)
np.array创建多维数组
m = np.array([np.arange(2),np.arange(2)])
arange创建数组,作为参数传给array,创建了一个2x2的数组
创建一个3x3的多维数组
w = np.array([np.arange(3),np.arange(3),np.arange(3)])
步长2
a[3:7:2]
逆序
a[::-1]
b = np.arange(24).reshape(2,3,4) --2层,3行,4列
用:a来代替当前所有值,b[:,0,0]代表所有楼层的第1行第1列,b[0,:,:]代表第一层所有房间
多个冒号:可以用省略号...代替,b[0,:,:] == b[0,...]
raval函数,将多列展平,只展示视图view
flatten函数,将多列展平,且保存结果
reshape跟在表达式后设置维度
transpose 转置矩阵行转列
resize 设置维度,会直接修改
组合数组
a = np.arange(9).reshape(3,3) b = 2*a a,b
水平组合
np.hstack((a,b)) #stack:组合 np.concatenate((a,b),axis = 1)
当axis参数为0时,表示沿着纵轴进行计算。
当axis参数为1时,表示沿着横轴进行计算。
垂直组合
np.vstack((a,b)) np.concatenate((a,b), axis = 0)
浅拷贝:a is b
深拷贝:a.copy,a[1,2,3,4,5].copy
切片:a[::]
索引:a[]
1.cond = a >=120,a[cond]
2.布尔值其实就是1,0,快速找到目标数据项可以使用连乘
形状操作:
shape:初始形状,几维
reshape:改变形状,改变维度
数组转置:
a.T:行转列,列转行
三维数组及以上:a.transpose(b,(2,1,0)):默认0,1,2 改变为2,1,0
切片:split(a,indices_or_sections=3) ,平均分成3份
广播机制:两个数组形状不一致,通过扩展数组的方式实现相加、相减、相乘等操作
arr1 = np.array([0,1,2,3]*3)
低维度数组复制相应层数与高维数组进行运算
元素级方法:
abs:绝对值
sqrt:开根号
square:平方
exp:求e的n次幂
log:对数
pi:π
maximum(a,c):选取a和c里最大的那个值
minimum:选小的
any:有一个True就返回True
all:所有都True就返回True
inner:内积,对应位置积的和
clip:数据裁剪,clip(a,10,80),让a数组小于10的值都变成10,大于80的值都变成80
ceil:向上取整
floor:向下取整