01.NumPy

2019-04-09  本文已影响0人  Zzmi

NumPy

主要针对Python在数据和数值计算中,运行速度过慢问题。NumPy官网

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
上一篇下一篇

猜你喜欢

热点阅读