编写算法时常用到一些python函数(持续整理)

前言

今天在编写一个小算法的时候,有很多之前常用的函数都忘记了,还得重新去查简直不要太浪费时间!我将遇到的一些函数进行一下整理,以便自己查找起来方便。(以下为随即整理)

import numpy as np

提取矩阵的某一行或者某一列

a = np.arange(9).reshape(3,3)
a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
#矩阵的某一行
a[1]
array([3, 4, 5])
#矩阵的某一列
a[:,1]
array([1, 4, 7])
#生成对角矩阵
b = np.eye(3,3)
b
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
#将矩阵的某一列赋给另一列
b[:,1]=a[:,1]
b
array([[1., 1., 0.],
       [0., 4., 0.],
       [0., 7., 1.]])

计算矩阵的均值

mat =np.array([[1,2],[3,4]])
mat1 = np.matrix([[1,2],[3,4]])
print(mat)
print(mat1)  
[[1 2]
 [3 4]]
[[1 2]
 [3 4]]

axis = 0计算每一列的均值

axis = 1计算每一行的均值

print(np.mean(mat,axis=0))
print(np.mean(mat,axis=1))
[2. 3.]
[1.5 3.5]

np.array()和np.mat()的区别

1.生成数组所需格式不同
mat可以从字符串或列表中生成;array只能从列表中生成

a = np.mat(data='1, 2; 3, 4')
b = np.array([[1, 2], [3, 4]])
print(a)
print(b)
[[1 2]
 [3 4]]
[[1 2]
 [3 4]]

2.计算方式不同
np.array()生成的数组:np.dot()表示矩阵乘积;* 或者multiply表示点乘

print(np.dot(b,b))
print(b*b)
print(np.multiply(b, b))
[[ 7 10]
 [15 22]]
[[ 1  4]
 [ 9 16]]
[[ 1  4]
 [ 9 16]]

np.mat()生成的数组,( * )和np.dot()相同,点乘只能用np.multiply()

a = np.mat([[1, 1],[1, 1]])
b = np.mat([[2, 2],[2, 2]])
print(np.dot(a,b))
[[4 4]
 [4 4]]
print(a*a)
[[2 2]
 [2 2]]
print(np.multiply(a, b))
[[2 2]
 [2 2]]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值