假设A是一个MxN矩阵。我想用它的转置乘以A。是否有可能使用纯嵌套循环(即不使用np.transpose)?当我尝试遍历它时,我不知道如何解决范围问题,因为结果的形状与A不同。
假设A是3x4。那么A*(A^T)的结果将是3x3。result[i][j]
中的i
和j
都不能大于4。那么如何按行和按列迭代?
发布于 2020-01-15 03:06:48
下面是一个使用列表理解和sum
的解决方案
a = [[1, 2], [3, 4], [5, 6]]
result = [
[ sum(x*y for x, y in zip(row1, row2)) for row2 in a ]
for row1 in a
]
# result = [[5, 11, 17], [11, 25, 39], [17, 39, 61]]
它之所以有效,是因为A和Aᵀ的矩阵乘积中的每个元素都是A的行与Aᵀ的列的乘积,而Aᵀ的列正是A的行。
https://stackoverflow.com/questions/59728130
复制相似问题