NumPy(或者可能是 TensorFlow)中是否有 API 用于对多个数组(具有相同的第一维)执行同步改组?
例如,如果我有两个维度为 (N, A) 和 (N, B) 的数组,并且我想随机化每个数组的 N 个元素的顺序,同时保持第一个数组的元素和第二个。
是否有 API 或 Python 习惯用法来完成此操作?
请注意,将这些组合成一个包含 N 个元组的数组,然后用 random.shuffle
打乱顺序可能是我接受的一个选项,但我无法做到这一点工作:恢复原始数组是(尽可能接近我所管理的)困惑,因为 combined_array[:,0]
将具有以对象作为元素的维度 (N,),而不是维度 (N, A),除非是manually rebuilt with something like [x for x in combined_array[:,0]
最佳答案
permutation = numpy.random.permutation(N)
arr1_shuffled = arr1[permutation]
arr2_shuffled = arr2[permutation]
选择一个排列并将其用于两个数组。
关于python - 是否有用于 Python 数组同步改组的惯用语或 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45361118/