对JDA程序的一些帮助理解

对JDA程序的一些帮助理解

1、线性计算与矩阵分解scipy.linalg
 w, v = scipy.linalg.eig(a, b) 

w为特征值,v为特征向量
其中的linalg.eig(a,b)作用为计算矩阵特征向量
导入模块

import numpy as np  #导入numpy库
from scipy import linalg as lg #导入scipy库的linalg模块
arr=np.array([[1,2],[3,4]]) #创建方阵arr
b=np.array([6,14]) #创建矩阵b

scipy.linalg.eig():计算方阵的特征向量

 w, v = scipy.linalg.eig(a, b) 

scipy.linalg.svd():对矩阵进行奇异值分解

print('SVD:',lg.svd(arr)) #对矩阵arr进行svd分解

scipy.linalg.lu():对矩阵进行LU分解

print('LU:',lg.lu(arr)) #对矩阵arr进行lu分解

scipy.linalg.solve():方程组求解

print('Sol:',lg.solve(arr,b)) #求方程组arr*x=b的解

scipy.linalg.inv():计算方阵的逆矩阵、行列式

print('Inv:',lg.inv(arr)) #求矩阵arr的逆矩阵
print('Det:',lg.det(arr)) #求矩阵arr的行列式
2、numpy中argsort()函数的用法
 ind = np.argsort(w)

例如:

1 import numpy as np
2 x=np.array([1,4,3,-1,6,9])
>>>x.argsort()

输出:

y=array([3,0,2,1,4,5])

argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。

3、numpy中的flatten和ravel函数使用

x=np.array([[1,2],[3,4]])

flatten函数和ravel函数在降维时默认是行序优先

x.flatten()
array([1, 2, 3, 4])

x.ravel()
array([1, 2, 3, 4])

传入’F’参数表示列序优先

 x.flatten('F')
array([1, 3, 2, 4])

x.ravel('F')
array([1, 3, 2, 4])

# reshape函数当参数只有一个-1时表示将数组降为一维
x.reshape(-1)
array([1, 2, 3, 4])
# x.T表示x的转置
x.T.reshape(-1)
array([1, 3, 2, 4])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值