python - 如何将值作为索引的函数赋值给 numpy 数组?

标签 python arrays performance numpy multidimensional-array

我只能找到使用坐标元组分配特定值的结果,例如 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

最佳答案

您可以分配一个范围并利用 NumPy broadcasting :

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

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

关于python - 如何将值作为索引的函数赋值给 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51554733/

相关文章:

python - 将 xml 文件转换为 pandas 数据框

python - 读取文件的多种方式?

javascript - 为什么我不能将 Array#includes 用于嵌套数组?

python - 在行 [NumPy 或 Tensorflow] 的索引值之前将行中的值设置为零

java - 以更快的方式查找具有子目录的目录中的文件列表

java - python 中的 LIBGDX 是否比 Java 慢

python - 有效查找重复项对的数量

python - 使用Python删除Excel行

python - 在 Python 2.7 中合并多嵌套字典的最佳方法

java - 如何在java中写出一个二维数组以便C程序可以读取它