NumPy常用操作
模块:random 作用:生成随机数
random 模块的子函数
random 生成0-1的随机数
uniform 生成均匀分布的随机数
randn 生成标准正态的随机数 ……也可以写作rand
normal 生成正态分布
shuffle 随机打乱顺序
seed 设置随机数种子
import numpy as np
对以下程序
np.random.random([3,3]) #生成一个3*3的矩阵
np是包,之后random是模块,最后一个random才是函数
np1=np.random.random([3,3])
写数据
np.savetxt(X=np1,fname=’文件路径’) #X是参数,即要写入文件的数据
读数据
np.loadtxt(‘文件路径’)
random.choice函数,用于从指定样本中抽取数据
a=np.arange(1,25,dtype=float)
b=random.choice(a,size(3,4),replace=False)
#意思是a是一个由[1,24)生成步长为1的等差数列,b是从a中有条件的抽出数据,放到大小为3*4的矩阵中,其中replace代表条件,replace=False代表不可重复抽取,默认为True.
#replace可以替换成表达式,意味选择的条件,如下
c=random.choice(a,size(3,4),p=a/np.sum(a))
p=a/np.sum(a)即为选择条件
矩阵的相关操作如下:
a=np.arange(9).reshape([3,3])
a.trace() #a的迹
np.linalg.det(a) #a的行列式
np.transpose(a) #a的转置
a.dot(b) #a·b
a=np.random.random([3,3])
np.linalg.solve(a,np.eye(3)) #计算a的逆矩阵,计算方法为Ax=E
append合并两个矩阵
a=np.arange(4).reshape(2,2)
b=np.arange(4).reshape(2,2)
np.append(a,b,axis=0) #按行合并,即
c=np.append(a,b,axis=1) #按列合并,即
若想知道a,b按列合并之后的维度,可以用c.shape表示 #(不加’()’!)
将矩阵展平
a=np.arange(4).reshape(2,2)
a.ravel(‘F’) #矩阵a按行展平
a.ravel() #矩阵a按列展平
NumPy实现不同维数的矩阵加法(广播机制)Broadcast
1 import numpy 2 3 x=numpy.arange(6).reshape(3,2) 4 y=numpy.arange(2).reshape(1,2) 5 6 print(x+y)
'''
[[0 2]
[2 4]
[4 6]]
''
其中a=[0 1\n2 3\n4 5] b=[0 1],而在实际做加法的时候,b矩阵被扩充为一个3*2的矩阵,并且初始化为[0 1\n0 1\n0 1],因而实现了不同维数的矩阵的加法