【问题标题】:Equivalent of NumPy index arrays with standard Python lists or arrays与标准 Python 列表或数组等效的 NumPy 索引数组
【发布时间】:2021-12-28 02:57:06
【问题描述】:

我可以使用数组或列表来索引numpy.array,例如:

a = np.array([1, 2, 3, 4])
print(a[[1, 3]])

会产生

[2 4]

是否有等效的构造来索引标准 Python 列表或数组?

更具体地说:索引必须使用数组,并且索引模式是随机的,即切片不可能。这是一个更好的例子:

a = np.array([1, 2, 3, 4])
i = [3, 0, 1]
print(a[i])
.....
[4 1 2]

【问题讨论】:

  • 我不这么认为,这就是我们使用 NumPy 的原因。
  • 这取决于你所说的等价物是什么意思。 [my_list[i] for i in index_list] 会给出这样的结果。
  • 不,没有。
  • 在这种特定情况下,切片就可以了。但您可能不只是在寻找均匀分布的索引,对吗?
  • @MisterMiyagi 不,我正在寻找一般案例。

标签: python arrays list numpy matrix-indexing


【解决方案1】:
from operator import itemgetter 

print(itemgetter(1,3)(a))

并把它变成一个列表:

print(list(itemgetter(1,3)(a)))

【讨论】:

  • 作为索引的迭代实现:tuple(obj[i] for i in items)
  • 不完全在那里,因为它索引并产生一个元组而不是数组。
猜你喜欢
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多