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

标签 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

最佳答案

您可以尝试方法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/

相关文章:

python - 如何使用 tcl exec 命令运行 python 脚本

python - 如何仅使用以下三种选择之一使用(while)和(try)语句来处理用户输入的错误

python - Numpy 数组仅显示唯一行

python - 在两个连续执行的函数之间添加延迟

python - 如何使用 Paramiko 访问远程主机?

c++ - 初始化字符数组有问题

javascript - 在对象的子数组中搜索 - JavaScript

arrays - 通过对象属性获取数组中的不同元素

python - Numpy where() 创建与定义颜色不同的点

python - 为什么 numpy 向量化函数显然被称为额外时间?