python - 根据第二个数组中的索引重新排列 numpy 数组

标签 python numpy

我有 2 个 numpy 数组:

A = np.array([6, 7 ,8 ,9, 0])
B = np.array([5, 3, 2, 4, 1])

并且想使用第二个数组重新排列第一个数组。因此 A 的第一个元素应该放在输出数组中的位置 5。第二个元素应该转到第三个元素,依此类推。因此输出数组变为:

C = np.array([0, 8, 7, 9, 6])

使用简单的 python 循环很简单,但我只想使用 numpy。速度非常重要。

最佳答案

Numpy 允许您使用 B 来索引 A。您必须从 B 中减去 1,因为 numpy 数组中的索引从 0 开始:

In [17]: A = np.array([6, 7, 8, 9, 0])

In [18]: B = np.array([5, 3, 2, 4, 1])

In [19]: C = A[B-1]

In [20]: C
Out[20]: array([0, 8, 7, 9, 6])

关于python - 根据第二个数组中的索引重新排列 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31920523/

相关文章:

python - 使用 numpy 数组和元组保持每个元素出现一次的快速方法

python - 在 NumPy 中交换数组数据

python:独立移动张量内的每个矩阵

Python 多处理 get 不会超时

python - 将训练和测试数据保存在文件中

Web 服务器上的 Python 脚本

Python通过numpy中的二维数组枚举

python - 数独益智盒,内含平方数

python - 比较 2 个巨大的 (5-6 GB) csv 文件并计算匹配和不匹配的数量。行数

python - 你如何在 Python 中使用 numpy 处理自然日志(例如 "ln()")?