根据排列替换Numpy数组中的值

时间:2018-07-30 03:52:05

标签: python arrays numpy

我有一个名为 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 版本?

1 个答案:

答案 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作为索引列表。我建议您查阅文档,因为此功能可能会引起混乱。