我需要替换一个numpy数组的一个元素,以验证一个条件的另一个numpy数组的最小值为准。请参见以下示例:
arr = np.array([0, 1, 2, 3, 4])
label = np.array([0, 0, 1, 1, 2])
cond = (label == 1)
label[cond][np.argmin(arr[cond])] = 3
我希望现在的标签是
array([0, 0, 3, 1, 2])
相反,我得到了
array([0, 0, 1, 1, 2])
这是已知事实numpy arrays are not updated with double slicing的结果。你知道吗
无论如何,我不知道如何用一种简单的方法重写上面的代码。有什么提示吗?你知道吗
您正在用索引的链接触发^{} ,因此赋值不会通过。要解决这个问题,一种方法是存储与掩码对应的索引,然后使用索引。以下是实施方案-
样本运行-
相关问题 更多 >
编程相关推荐