假设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]) P.S.不要担心,a总是以np.arange(int)的形式存在,并且b的值不会超过a的长度
发布于 2015-02-27 18:32:44
那么,如果对象要创建一系列与其索引相同或-1的值,那么从all -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])发布于 2015-02-27 17:34:46
>>> a = np.arange(12)
>>> b = [3,5,6]
>>> a[~np.in1d(np.arange(len(a)), b)] = -1
>>> a
array([-1, -1, -1, 3, -1, 5, 6, -1, -1, -1, -1, -1])https://stackoverflow.com/questions/28770938
复制相似问题