如何解决根据另一个数组的值将布尔矩阵的元素更改为True
我正在尝试根据包含在另一个numpy数组中的该行的索引值,将布尔矩阵中的False元素的值更新为True。
这是我的数组change
,用于标识矩阵mask_matrix
中需要更改的元素:
import numpy as np
mask_matrix = np.zeros((20,25),dtype=bool)
change = np.array([ 6.,22.,21.,17.,12.,7.,17.])
因此change
中的每个项目都告诉mask_matrix
中要更改的元素。例如。 change[0] = 6.
应将mask_matrix
我知道我可以更改这样的项目
mask[0,:][6] = True
但是我需要找到一种更有效的方法。
有人对此有任何建议吗?最好是向量化。
解决方法
这应该有帮助:
mask_matrix[np.arange(change.size),change]=True
基本上是在numpy中使用高级索引来调用数组的行列元素。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。