如何将数组值分配给数组中的第n-1个位置

问题描述 投票:0回答:1

我有一个像这样的数组:

[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)
python arrays numpy random numpy-ndarray
1个回答
1
投票

使用 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])

© www.soinside.com 2019 - 2024. All rights reserved.