我试图根据另一个numpy数组中包含的该行的索引值将布尔矩阵中的False元素的值更新为True。
下面是我的数组change,它标识了需要在矩阵mask_matrix中更改的元素
import numpy as np
mask_matrix = np.zeros((20, 25), dtype=bool)
change = np.array([ 6., 22., 22., 22., 22., 21., 22., 21., 17., 21., 22., 21., 22.,
21., 22., 12., 7., 7., 12., 17.])因此,change中的每个项都指示要在mask_matrix中更改哪个元素。例如,change[0] = 6.应该将mask_matrix中的第一行和第6列更改为6。
我知道我可以改变这样的东西,
mask[0,:][6] = True但我需要找到一种更有效的方法。
有人对如何做这件事有什么建议吗?最好是矢量图。
发布于 2020-08-12 20:38:46
这应有助于:
mask_matrix[np.arange(change.size),change]=True它基本上是使用numpy中的高级索引来调用数组的行列元素。
https://stackoverflow.com/questions/63384314
复制相似问题