我有一个名为 X 的大型 np 数组(大小:32000),其中填充了 0, 1, 2, 3
的重复值。
我想用以下数字的排列替换每个值(0, 1, 2, 3):0, 1, 2, 3, 4, 5
例如,0, 1, 2, 3
可以替换为以下内容:
1, 5, 3, 4
5, 2, 4, 3
0, 5, 1, 4
依此类推(总共有360种排列)
如何获取 360 个排列中的每一个,并相应地替换 X 中的 32000 个值,以便最终为每个排列提供 360 个版本的 X?
最佳答案
您可以尝试方法numpy.choose
:
import numpy as np
x = np.array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3,])
perm = [1, 5, 3, 4,]
x = np.choose(x, perm)
np.choose(x, perm) 将为 x 的每个值从 perm 中选择一个值,将 x 作为索引列表。我建议查看文档,因为此函数可能会导致困惑。
关于python - 根据排列替换 Numpy 数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51586757/