python--numpy模块学习总结

最近学机器学习,用python写程序,在过程中大量用到numpy模块,之前是边用边查,这次看了Imooc的课程做一个总结,也做一个总的了解,之后再忘记再查的时候也能提速不少,也可温故知新:


一、数组的长度,shape,reshape

# a是np.array,reshape方法重组长度
a.shape #a的长度,几行几列
a.shape[0] # a的行数
a[2,0]=55 # 对3行第一个数赋值55,a[2][0]也可以


二、创建单位矩阵,0矩阵等

# zeros,ones创建全为0,1的数组
a=np.ones((2,1)) #两行一列全为1的数组
# full可代替zeros和ones
a=np.full((2,1),1) #与上面等价
# eye单位矩阵
a=np.eye(3) # 三维单位矩阵
#random创建随机数组,[0,1]
a=np.random.random((2,3)) #生成随机2行3列矩阵,数值在0-1之间
# (2 * np.random.random(3, 4) - 1) * 0.001 这句话就是生成3×4的矩阵,其中的数值是([0,1]×2-1)*0.001,即[-0.001,0.001]范围的值


三、数组的索引

#数组索引的取用
a=[[1,2,3],[4,5,6],[7,8,9]]
a[-2:,1:3] # 意思是取倒数第二行开始到最后一行,取1到3列,即[[5,6],[8,9]]
a[-2:][1:3] #与上面等价
a[-2,1:3] # 取倒数第二行1到3位置的,这是一个一维数组,而由上面两种方式取出来都是2维的


四、矩阵的某行某列整体加减

a[np.arange(3),1] += 10# 数组前三行第二列加10,arange(3)生成长度为3的数组[0,1,2]
a[[0,1,2],[1,1,1]]+=10#与上面等价
np.arange(3,6)#生成[3,4,5]


五、矩阵运算(点乘和叉乘可把我玩坏了,dot表示叉乘,*表示点乘)

# 数学运算
#数组类似与矩阵加减,直接+,-即可
# *表示点乘,/对应位置进行除法
a.dot(b)#矩阵ab叉乘,等价于np.dot(a,b)
np.sum(a) #将数组中每个数相加求和
np.sum(a,axis=0)#axis为0对列求和,得到一维数组,为1对行求和得到数组
np.mean(a)#求平均值,同样可带参数axis
np.random.uniform(3,4)#生成3-4随机数
a.T#矩阵转置

扫描二维码关注公众号,回复: 5482231 查看本文章

六、广播(涉及的应该是数值计算那一块内容,有个概念就行了)

# 广播:如果ab数组维度不一样,使用a+b会自动缺省


七、其他

result = a>10 # a数组中大于10的,输出[false,true...]矩阵
a[a>10] #输出一维数组[22,23...]输出所有大于10的数

#数组的元素类型
a.dtype

猜你喜欢

转载自blog.csdn.net/qq_36187544/article/details/88245776