xy 坐标到矩阵的列表

Nic*_*k D 3 python arrays numpy

我有一个包含 x,y 坐标对的元组列表。我希望将列表转换为矩阵,xy 坐标表示使用 numpy 而不使用循环的矩阵索引。

对于列表中存在的任何 xy 坐标,在相应的索引位置有一个 1,对于列表中不存在的任何值都有一个 0。

原列表:

a = [(0,0),(0,2),(0,3),(0,4),
    (1,1),(1,2),(1,4),(2,2),
    (3,2),(3,4), (4,4)]
a
Run Code Online (Sandbox Code Playgroud)

所需输出:维度数组 (5,5)

[
 [1, 1, 0, 1, 1],
 [1, 0, 0, 0, 0],
 [1, 1, 1, 1, 0],
 [0, 1, 0, 0, 0],
 [1, 0, 0, 0, 0]
                ]
Run Code Online (Sandbox Code Playgroud)

类似于python - numpy 从索引列表创建 2D 掩码 + 然后从掩码数组中绘制 - 堆栈溢出但不使用 scipy。

Chr*_*ris 5

使用numpy.add.atnumpy.rot90

import numpy as np

res = np.zeros((5,5))
np.add.at(res, tuple(zip(*a)), 1)
np.rot90(res)
array([[1., 1., 0., 1., 1.],
       [1., 0., 0., 0., 0.],
       [1., 1., 1., 1., 0.],
       [0., 1., 0., 0., 0.],
       [1., 0., 0., 0., 0.]])
Run Code Online (Sandbox Code Playgroud)