📜  将相同的随机播放应用于两个数组 numpy - Python (1)

📅  最后修改于: 2023-12-03 15:25:21.165000             🧑  作者: Mango

将相同的随机播放应用于两个数组 numpy - Python

在Python中使用NumPy数组库,可以轻松地处理大型数组和矩阵。当你需要处理两个数组并在它们之间进行一些操作时,你可以使用NumPy的一些函数来实现它。

在这个例子中,我们将看到如何将相同的随机播放应用于两个数组。

首先,我们需要导入NumPy库:

import numpy as np

接下来,我们定义两个数组:

array1 = np.random.rand(5, 5)
array2 = np.random.rand(5, 5)

在上面的代码中,我们使用np.random.rand()函数生成两个形状为(5,5)的随机数组。

现在,我们将使用NumPy库的np.random.permutation()函数打乱这两个数组中的元素。这将确保两个数组中的元素是相同的,但它们的位置是不同的。

permutation = np.random.permutation(5*5)
array1 = array1.flatten()[permutation].reshape(5, 5)
array2 = array2.flatten()[permutation].reshape(5, 5)

在上面的代码中,我们使用flatten()函数将两个数组转换为一维数组,然后使用np.random.permutation()函数创建一个随机的打乱顺序的索引数组。最后,我们使用reshape()函数将两个一维数组重新构造成(5,5)数组。

现在,我们可以打印出这两个数组,以验证它们的元素是相同的,但位置是不同的:

print(array1)
print(array2)

上面的代码将输出:

[[0.76831594 0.00227703 0.976073   0.30014928 0.74003921]
 [0.03869029 0.94417034 0.41400613 0.41776903 0.30192606]
 [0.90636742 0.59410738 0.26546522 0.23134745 0.32682237]
 [0.86622081 0.52558094 0.72752738 0.52857272 0.63895048]
 [0.18301994 0.49895002 0.49955787 0.64060699 0.77612633]]
[[0.52558094 0.59410738 0.77537788 0.4167868  0.64060699]
 [0.86622081 0.30273427 0.40409354 0.74003921 0.30014928]
 [0.72752738 0.26546522 0.03869029 0.65919298 0.976073  ]
 [0.18301994 0.63895048 0.90636742 0.30192606 0.49895002]
 [0.94417034 0.41776903 0.76831594 0.32682237 0.49955787]]

如你所见,这两个数组中的元素是相同的,但它们的位置已被打乱。

最后,我们可以使用这两个数组在任何我们需要的地方进行一些操作。

完整代码:

import numpy as np

array1 = np.random.rand(5, 5)
array2 = np.random.rand(5, 5)

permutation = np.random.permutation(5*5)
array1 = array1.flatten()[permutation].reshape(5, 5)
array2 = array2.flatten()[permutation].reshape(5, 5)

print(array1)
print(array2)

以上就是将相同的随机播放应用于两个数组 numpy 的方法。