【问题标题】:Indexing arrays with other arrays (without using a for loop)用其他数组索引数组(不使用 for 循环)
【发布时间】:2023-03-31 18:23:01
【问题描述】:

在 numpy 中有没有办法使用另一个数组来索引一个数组。例如,如果我有这个数组:

a = [1.0, 2.0, 3.0, 4.0]

还有这个数组

b = [3, 1, 1, 2]

是否有一种使用 b 索引 a 的方法,使得新数组的第 0 个分量是 a 的第 3 个分量,新数组的第一个分量是 a 的第一个分量,依此类推。

换句话说就是这样

[4.0, 2.0, 2.0, 3.0]

我知道使用 for 循环很容易做到这一点,但我明确希望避免使用 for 循环,因为我正在使用更高维数组执行此过程,结果是程序大幅减速。

【问题讨论】:

  • 你试过a[b]吗?因为它正是这样做的。
  • 如果您明确指定 numpy 数组,问题会更清楚:a = numpy.array([1.0, 2.0, 3.0, 4.0])

标签: python arrays numpy indexing


【解决方案1】:

实际上就是a[b]。 (额外的字,因为 StackOverflow 需要 30 个字符。我会发布一个演示,但我不能从这里运行一个,我不想伪造输出。)

【讨论】:

  • 我尝试了几次更高维度的数组,最终得到了更多的轴,然后我开始假设它只是创建了一个数组数组。
猜你喜欢
  • 1970-01-01
  • 2019-10-16
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多