【发布时间】:2020-07-16 08:39:59
【问题描述】:
我经常需要根据给定的向量v[i] 计算一个矩阵A[i,j] by:
A[i, j] = v[j] - v[i]
这在嵌套循环中很简单,但我想对其进行矢量化。到目前为止,我只提出了另外创建两个矩阵的相当丑陋的解决方案,其中 v 在每一行/列中重复,因此我可以使用简单的元素矩阵加法。
这里是一个 numpy 的例子:
import numpy as np
length = 10
v = np.random.random(length)
vjMatrix = np.broadcast_to(v, (length, length))
viMatrix = np.transpose(vjMatrix)
A = vjMatrix - viMatrix
print(A)
但是,我希望有一个更优雅的解决方案,我只是看不到。查了很多帖子,没有找到特别合适的。
谢谢!
【问题讨论】:
-
能否请你用一些值和所需的输出填充你的向量?
-
编辑了向量中的随机值,纠正了小错误并添加了所需矩阵的输出。
标签: python arrays numpy vectorization