例如,对于矩阵A,我们有A.dot(A) = B
现在我有B,想得到A。我试过np.sqrt(B)
,但这只能得到每个数字的sqrt是B,而不是A。我在网上搜索了一下,但一无所获。
有什么办法可以在NumPy中获得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呢?
1条答案
按热度按时间zlwx9yxi1#
你可以用scipy来做。
如果你想用numpy来做,那么我认为你最好的猜测是,对角化你的矩阵,然后计算内对角矩阵的平方根。
请注意,如果矩阵是对称真实的,则可以加快计算速度(使用
np.eigh
,因为它是evectors
的转置,所以不必计算逆矩阵)。