Python 是否可以在多个numpy阵列上执行相同的洗牌?

Python 是否可以在多个numpy阵列上执行相同的洗牌?,python,numpy,Python,Numpy,我需要在多个阵列上同时执行相同的洗牌。这些可能是多个Gb的大型阵列,因此需要就地完成。一个简单的例子: 洗牌前: Arr1: [[1 2 3] [4 5 6]] Arr2: [0 1] 洗牌后: Arr1: [[4 5 6] [1 2 3]] Arr2: [1 0] 以下是我找到的最佳解决方案: from numpy.random import RandomState import sys def shuffleDataAndLabelsInPlace ( ar

我需要在多个阵列上同时执行相同的洗牌。这些可能是多个Gb的大型阵列,因此需要就地完成。一个简单的例子:

洗牌前:

Arr1: [[1 2 3]
       [4 5 6]]
Arr2: [0 1]
洗牌后:

Arr1: [[4 5 6]
       [1 2 3]]
Arr2: [1 0]

以下是我找到的最佳解决方案:

from numpy.random import RandomState
import sys

def shuffleDataAndLabelsInPlace ( arr1, arr2):
    seed = random.randint(0, sys.maxint)
    prng = RandomState(seed)
    prng.shuffle(arr1)
    prng = RandomState(seed)
    prng.shuffle(arr2)

# Example:
arr1= np.array([[1,2,3],[4,5,6]])
labels = np.array([0, 1])

print "Before shuffle"
print arr1
print arr2
print "After"
shuffleDataAndLabelsInPlace(arr1, arr2)
print arr1
print arr2
提供与原始问题相同的输出