【发布时间】:2019-01-04 09:19:06
【问题描述】:
我只能找到使用坐标元组分配某些值的结果,例如this one。
我想将值分配给二维数组作为其坐标的函数。最简单的情况是将每个元素的值设置为它们的第二个索引(例如 x 坐标)。这样,
x[0][0] = 0
x[1][0] = 0
...
x[2][0] = 0
x[0][1] = 1
x[0][2] = 2
...
更复杂的情况是将这些值设置为到某个点 (x, y) 的欧几里得距离。
我目前的解决方案是使用 for 循环,这绝对不是有效的。矢量化实现会很好。
我目前的实现:
x_mask = np.zeros((256, 256))
for i in range(256):
for j in range(256):
x_mask[i][j] = j
【问题讨论】:
-
您的简单示例很简单。对于更复杂的情况,您应该自己尝试矢量化解决方案并告诉我们您遇到的问题。没有“通用方式”来矢量化操作。如果有,我们就不需要程序员了:)。
-
@jpp 期望每个位置都有一个 lambda 表达式。我想一旦我将 x/y 坐标作为辅助矩阵来计算很多其他东西,它的效果同样好。
标签: python arrays performance numpy multidimensional-array