慕标琳琳
是的,您可以使用 NumPy 的outer(). 这基本上是一个外积问题,您只需将结果外积 n*n 矩阵的元素相加即可。在这里,您在矩阵中使用的唯一值是第一行和第一列。因此,您需要做的就是使用np.outer( docs )取第一行和第一列的外积。这就是您在使用嵌套 for 循环的算法中所做的一切。例子import numpy as npf = np.random.randint(1, 9, (3, 3)) # Create a test 3x3 matrix col = f[:, 0] # first column enteries [5, 3, 8]row = f[0, :] # first row enteries [5, 3, 4]summ = np.sum(np.outer(row, col))print (f)print ('The sum is %d' %summ)#[[5 3 4]# [3 8 1]# [8 7 2]]# The sum is 192hpaulj建议的替代方案是np.einsum('i,j->', f[:,0], f[0,:])