我有一个 bool 数组,如下所示:
arr_a = np.array(
[[False, False, False],
[True, True, True],
[True, True, True],
[False, False, False]]
)
和另一个看起来像这样的数组:
arr_b = np.array(
[[100, 100, 100],
[200, 200, 200]]
)
我正在寻找一个可以像这样调用的函数:np.boolean_combine(arr_a, arr_b)
,返回一个数组,用 arr_b 中的值替换 arr_a 中的 1,对于最终结果如下所示:
np.array(
[[0, 0, 0]
[100, 100, 100],
[200, 200, 200],
[0, 0, 0]]
)
有这样的功能吗?
最佳答案
您可以创建一个与 arra_b
具有相同 dtype
的新数组,使用 arr_a
获取切片 View 并从 分配值>arra_b
:
out = arr_a.astype(arra_b.dtype)
out[arr_a] = arra_b.ravel()
array([[ 0, 0, 0],
[100, 100, 100],
[200, 200, 200],
[ 0, 0, 0]])
关于python - 如何使用一个 numpy bool 数组修改另一个 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777062/