我想使用像这样的索引数组获取numpy
数组的元素
import numpy
a = numpy.arange(6)
ind = [2,3]
现在,a[ind]
为我提供了第3和第4个元素,但实际上我想要a
的所有其他元素。
是否有一条线/优雅的方式来做到这一点?
答案 0 :(得分:4)
我知道没有一种简单的方法来获得一组整数索引的补充。布尔索引否定很容易,这可以让你做这样的事情:
In [100]: a=np.arange(6)
In [101]: ind=[2,3]
In [102]: cind=(a==a)
In [103]: cind[ind]=False
In [104]: a[cind]
Out[104]: array([0, 1, 4, 5])
但它不是单线解决方案。
答案 1 :(得分:1)
也许是这样的:
import numpy
a = numpy.arange(6)
ind = [1,3]
for x in range(6):
if x not in ind: print a[x]
答案 2 :(得分:1)
之前已经在这里提出过,但这是一个列表理解,因此是一个oneliner:
numpy.array([a[i] for i in range(len(a)) if i not in ind])
结果
array([0, 1, 4, 5])