gpt4 book ai didi

python - 将标量值分配给另一个数组中的 numpy 数组的所有元素

转载 作者:行者123 更新时间:2023-11-28 22:14:08 24 4
gpt4 key购买 nike

例如,我有一个numpy数组a = np.arange(10),我需要在ignore = [2,3,4]中赋值> 为数字 255,如下所示:

a = np.arange(10)
ignore_value = [3,4,5]
a[a in ignore_value] = 255 # what is the correct way to implement this?

上面程序中的最后一行不能被Python3.5接受,但它显示了我想做的事情。

编辑:

我找到了一个解决方案,但它没有矢量化。

for el in ignore_value:
a[a == el] = 255

这看起来真的很难看,而且很慢,因为这里有一个 for 循环,所以我有更好的方法吗?

最佳答案

In [500]: a = np.arange(10)
In [501]: ignore_value = [3,4,5]
In [502]: np.isin(a, ignore_value)
Out[502]:
array([False, False, False, True, True, True, False, False, False,
False])
In [503]: a[np.isin(a, ignore_value)]=255
In [504]: a
Out[504]: array([ 0, 1, 2, 255, 255, 255, 6, 7, 8, 9])

您还可以使用以下方法构造掩码:

In [506]: a[:,None]==ignore_value
Out[506]:
array([[False, False, False],
[False, False, False],
[False, False, False],
[ True, False, False],
[False, True, False],
[False, False, True],
[False, False, False],
[False, False, False],
[False, False, False],
[False, False, False]])
In [507]: (a[:,None]==ignore_value).any(axis=1)
Out[507]:
array([False, False, False, True, True, True, False, False, False,
False])

关于python - 将标量值分配给另一个数组中的 numpy 数组的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53552082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com