我有一个像这样的数组:
[1, 2, 3, 4, 5]
。我洗牌得到这个:[1, 5, 4, 2, 3]
。
目标:将数组中的每个值分配给数组中的第 n-1 个位置
换句话说,我需要数字 1 位于第 1 位,2 位于第 5 位,3 位于第 4 位,2 位于第 5 位,3 位于第 6 位。
例如,这个的输出将是:
[1, 4, 5, 3, 2]
。
是否有内置函数或简单代码可以实现此目标?
到目前为止我所做的:
import numpy as np
import random
array = np.arange(1,6)
print(array)
random.shuffle(array)
print(array)
使用 numpy 索引:
a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 5, 4, 2, 3])
out = np.zeros_like(a)
out[b-1] = a
输出:
array([1, 4, 5, 3, 2])