Skip to main content
 首页 » 编程设计

python之修改 numpy 数组中的值

2025年05月04日15linjiqin

假设 a 和 b 如下:-

a = np.arange(5) 
b = [0,1,2] 

我想要的是对于不包括 b 中的索引的索引,a 中的值应该等于 -1。 所以在上面的例子中 a 将等于

a = array([0, 1, 2, -1, -1]) 

我知道有一种方法,即

a[list(set(a)-set(b))] = -1 

但是太费时间了,而且实际写代码的时候也太复杂了。 一如既往,我正在寻找比上述方法更好的方法。 随意使用所需的任何工具。 另一个例子(以防万一):- 如果

a = np.arange(12) 
b = [3,5,6] 

那我真正想要的是 a = array([-1, -1, -1, 3, -1, 5, 6, -1, -1, -1, -1, -1]) 附言不用担心 a 将始终采用 np.arange(int) 的形式并且 b 的值不会超过 的长度一个

请您参考如下方法:

好吧,如果对象是创建一个与其索引或 -1 相同的值范围,那么从所有 -1 开始并添加您想要的数据可能比相反的方式更简单。

>>> a = np.full(12, -1, dtype=int) 
>>> b = [3, 5, 6] 
>>> a[b] = b 
>>> a 
array([-1, -1, -1,  3, -1,  5,  6, -1, -1, -1, -1, -1])