我有一个名为 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 版本?
答案 0 :(得分:1)
您可以尝试方法Raising an exception on invalid data:
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作为索引列表。我建议您查阅文档,因为此功能可能会引起混乱。