2024-05-17 12:14:08 发布
网友
我想从一个线性向量A得到一个平方矩阵B,这样B = A * transpose(A)。A是一个numpy数组,np.shape(A)返回(10,)。我希望B是(10,10)数组。我尝试了B = np.matmut(A, A[np.newaxis]),但是我得到一个错误:
A
B
B = A * transpose(A)
np.shape(A)
(10,)
(10,10)
B = np.matmut(A, A[np.newaxis])
shapes (10,) and (1,10) not aligned: 10 (dim 0) != 1 (dim 0)
外部产品变化:
a = A.reshape(-1, 1) # make sure it's a column vector B = a @ a.T
解决方案有点难看,但它能满足您的需要。在
import numpy as np vector = np.array([1,2,3,4,5,6,7,8,9,10],) matrix = np.dot(vector[:,None],vector[None,:]) print(matrix)
也可以执行以下操作:
这个问题来自于这样一个事实,即转换一维数组并没有达到预期的效果。在
您可以使用outer来执行此操作:
outer
import numpy as np vector = np.arange(10) np.outer(vector, vector)
外部产品变化:
解决方案有点难看,但它能满足您的需要。在
也可以执行以下操作:
^{pr2}$这个问题来自于这样一个事实,即转换一维数组并没有达到预期的效果。在
您可以使用
outer
来执行此操作:相关问题 更多 >
编程相关推荐