有没有办法得到NumPy中矩阵的sqrt?不是元素,而是整体
例如,对于矩阵A,我们有有没有办法得到NumPy中矩阵的sqrt?不是元素,而是整体,numpy,Numpy,例如,对于矩阵A,我们有 A.dot(A)=B 现在我有B,想得到A。我试过np.sqrt(B),但这只能得到每个数字的sqrt是B,不是A。我在网上搜索了一下,但什么也没找到 有没有办法在纽比拿到一张票 比如说 import numpy as np ar = np.random.randint(low=1, high=5, size=(4,4)) ar2 = ar.dot(ar) ar1 = np.sqrt(ar2) 然后我们会发现ar1和ar不一样。如果我们现在知道了ar2,我们如何获得a
A.dot(A)=B
现在我有B,想得到A。我试过np.sqrt(B)
,但这只能得到每个数字的sqrt是B,不是A。我在网上搜索了一下,但什么也没找到
有没有办法在纽比拿到一张票
比如说
import numpy as np
ar = np.random.randint(low=1, high=5, size=(4,4))
ar2 = ar.dot(ar)
ar1 = np.sqrt(ar2)
然后我们会发现ar1和ar不一样。如果我们现在知道了ar2,我们如何获得ar?好的,你可以做到
如果你想用numpy,那么我认为你最好的猜测是对你的矩阵进行对角化,然后计算内部对角矩阵的平方根
计算对角化
评估值,evectors=np.linalg.eig(a)
#确保平方根矩阵存在
断言(evalues>=0).all()
sqrt_矩阵=evectors@np.diag(np.sqrt(evalues))@np.linalg.inv(evectors)
请注意,如果矩阵是对称实矩阵(使用
np.eigh
,并且不必计算逆矩阵,因为它是evectors
的转置),则可以加快计算速度。首先求和np.sqrt(B.sum())
?A和B是矩阵。此代码将只获取一个数字。请您显示一些输入和输出示例好吗?如果您有ar
上点缀的内容,则只能获取ar
。。。因为你在用它自己打点它,而这正是你想要找到的。。。然后…ar2=ar*ar然后ar1=np.sqrt(ar2)将起作用,因为它是一个元素级矩阵乘法。我建议你研究一下NumPy中a*b和a.dot(b)的区别。