首页 > 解决方案 > 如何将值分配给 numpy 数组作为索引的函数?

问题描述

我只能找到使用坐标元组来分配某些值的结果,比如这个

我想将值分配给二维数组作为其坐标的函数。最简单的情况是将每个元素的值设置为它们的第二个索引(例如 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

标签: pythonarraysperformancenumpymultidimensional-array

解决方案


您可以分配一个范围并利用 NumPy广播

A = np.zeros((256, 256))
A[:] = range(A.shape[1])
# or A[:] = np.arange(A.shape[1])

您选择的方法将取决于您希望应用的功能。


推荐阅读