【问题标题】:Python excluding indexes from array [duplicate]Python从数组中排除索引[重复]
【发布时间】:2018-05-15 12:30:58
【问题描述】:

我有一个数组

a=[0, 10, 20, 30, 40, 50, 60] 

我用

选择了第二个和第三个元素
a[[1,2]] 

获得

array([10, 20])

我如何选择a 的其他元素,除了我已经选择的元素?

也就是我要获取:

array([0, 30, 40, 50, 60])

逻辑上应该是这样的

a[![1,2]]

【问题讨论】:

  • 有一个过滤功能可以做到这一点 => here。你可以只谷歌,“Python 3 过滤器”。
  • 标记numpy,如果这是您要问的。
  • a 如图所示(但未命名)是一个列表。 a[[1,2]] 给出一个错误。如果 a 真的是一个 numpy 数组,你应该在你的代码中显示它。

标签: python arrays numpy selection


【解决方案1】:

像这样:

a=[0, 10, 20, 30, 40, 50, 60]

b = a[1:3]
c =[x for x in a if x not in b]

print(a)
print(b)
print(c)

输出:

[0, 10, 20, 30, 40, 50, 60]
[10, 20]
[0, 30, 40, 50, 60]

如果顺序无关紧要,您可以将列表放在一组中并使用these set operationsyourSet.union(otherSet)yourSet.intersect(otherSet)yourSet.difference(otherSet)

【讨论】:

  • 这使用普通的旧 Python。
  • @MateenUlhaq 是吗?如果你有 numpy 和一把锤子,看到一个钉子 - 你会怎么做?
  • 当然是用 numpy 打它!
【解决方案2】:

在 python 2.7 上,最简单的解决方案是:

a=[0, 10, 20, 30, 40, 50, 60]
c=[1,2]
values = [a[i] for i, x in enumerate(a) if i not in c]
print values
[0, 30, 40, 50, 60]

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 2012-02-12
    • 2012-02-24
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多