如何使用numpy数组元素作为索引来为另一个numpy数组赋值



我有以下问题,我想使用numpy数组元素来解决。问题是:

矩阵=np.零((4*4(,dtype=bool(,它给出了这个2D矩阵。

Matrix = [[False, False, False, False],
[False, False, False, False],
[False, False, False, False],
[False, False, False, False]]

让我们假设我们有另一个数组a=np.array([0,1],[2,1],[3,3](

a = [[0, 1], 
[2, 1],
[3, 3]]      

我的问题是:如何使用数组的元素作为索引来用True填充矩阵。输出应该看起来像这个

Matrix = [[False, True,  False, False], # [0, 1]
[False, False, False, False],
[False, True,  False, False], # [2, 1]
[False, False, False, True]]  # [3, 3]
import numpy as np
Matrix = np.zeros((4*4), dtype = bool).reshape(4,4)
a = [[0, 1], 
[2, 1],
[3, 3]]

将它们展开为一对合适的索引阵列,用于二维阵列

a = ([x[0] for x in a], [x[1] for x in a])
Matrix[a] = True
>>> Matrix
array([[False,  True, False, False],
[False, False, False, False],
[False,  True, False, False],
[False, False, False,  True]])

制作(4,4(布尔数组的简单方法:

In [390]: arr = np.zeros((4,4), dtype = bool)
In [391]: arr
Out[391]: 
array([[False, False, False, False],
[False, False, False, False],
[False, False, False, False],
[False, False, False, False]])

制作a:的正确语法

In [392]: a = np.array([[0,1], [2,1], [3,3]])
In [393]: a
Out[393]: 
array([[0, 1],
[2, 1],
[3, 3]])

使用a的2列作为arr:的2个维度的索引

In [394]: arr[a[:,0],a[:,1]]=True
In [395]: arr
Out[395]: 
array([[False,  True, False, False],
[False, False, False, False],
[False,  True, False, False],
[False, False, False,  True]])

相关内容

  • 没有找到相关文章

最新更新