01.NumPy
2019-04-09 本文已影响0人
Zzmi
NumPy
主要针对Python在数据和数值计算中,运行速度过慢问题。NumPy官网
- 关键字:开源—数据计算扩展
- 功能:N维数组类型ndarray—多维操作—线性代数
1、ndarray
print(np.array) # 用来创建一个numpy数组。
print(np.shape) # 显示np数组结构属性,形状 :n行n列
print(np.ndim) # 表示数组维度
print(np.dtype) # 表示数组元素类型(如:int8,in16,float64等)
print(np.itemsize) # 表示数组元素所占字节大小,如float64占字节8位
print(np.size) # 表示数组元素个数
2、some kinds of array
print(np.zeros([m, n])) # 全0数组,两行四列
print(np.ones([m, n])) # 全1数组,三行五列
print(np.random.rand(m, n)) # 均匀分布(0~1)随机数组
print(np.random.rand()) # 一个(0~1)随机数
print(np.random.randint(min, max, n)) # 在mix到max间生成n个随机数
print(np.random.randn(m, n)) # 标准正态分布,返回m*n个值
print(np.random.beta(min, max, n)) # 生成mix到max的n个数的beta分布
# np.random中的各种分布(正态,卡房,二项等等)
3、operation
list = (np.arange(1, 11)) # 产生一个1-11(不含11)的等差数列
list = (np.arange(1, 11)).reshape([2, 5]) # 变成两行五列数组
print (np.exp(list)) # list 自然指数
print (np.exp2(list)) # list 自然指数的平方
print (np.sqrt(list)) # list 开方
print (np.sin(list)) # list 三角函数
print (np.log(list)) # list 对数
lst.sum, lst.min, lst.min中axis:
- axis=0, [纵轴],对最外层的每行进行操作
- axis=1, [横轴],对倒数第二层的每行进行操作
print(np.concatenate((list1,list2), axis=0)) # 两个数组的追加一起,axis为0
print(np.vstack((list1,list2))) # 将两个数组分成两行组成一个数组 追加 分成两行
print(np.hstack((list1,list2))) # 将两个数组相连,同concatenate的结果
print(np.split(list1,2)) # 将数组切分成几个子数组
print(np.copy(list1)) # 对数组进行拷贝
lst**2 平方运算 dot() 点乘
4、liner algebra
from numpy.linalg import *
print(np.eye(3)) # 生成一个3行3列的单位矩阵
print(inv(lst)) # 逆矩阵
print(lst.transpose())
print(det(lst)) # 行列式值
print(eig(lst)) # 特征向量及特征值
print(solve(A, B)) # 求解AX=B
5、others
# fft快速傅里叶变换是数字信号处理(DSP)里的内容,属于通信范畴。相关系数属于线性代数内容
np.fft.fft(np.array([1, 1, 1, 1])) # 4点fft,Frouier变换,阶跃响应
np.corrcoef(list1, list2) # 皮尔逊相关系数计算
np.poly1d(a, b, c) # 一元线性方程ax+bx+c=0