假设 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])
