python - 在python中的一行内排列

标签 python numpy

我有两个配对的数组,这意味着两个数组中的元素 1 需要具有相同的索引。我想排列这些元素。目前,我尝试了 np.random.permutation 但似乎没有得到正确的答案。

例如,如果两个数组是 [1,2,3] 和 [4,5,6],一种可能的排列是 [4,2,3] 和 [1,5,6]。

最佳答案

您可以堆叠您的数组并使用choice为每一行选择一个随机列。

设置

a = np.array([1,2,3])
b = np.array([4,5,6])    
v = np.column_stack((a,b))

# array([[1, 4],
#        [2, 5],
#        [3, 6]])

np.random.seed(1)
choices = np.random.choice(v.shape[1], v.shape[0])
# array([1, 1, 0])

最后,要索引:

v[np.arange(v.shape[0]), choices]

array([4, 5, 3])

关于python - 在python中的一行内排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53472842/

相关文章:

python - 在矩阵中设置值 - Python

python - 4d np.array() 的作用类似于 1d np.array()

python - 关于python离散卷积的问题

python - NumPy:不正确地创建二维数组

python - 如何在 Python 中散列一个大对象(数据集)?

python - 从 Numpy 中的多个切片中选择

python - 禁用链接以在 django 的管理员中编辑对象(仅显示列表)?

python - 访问 GTK+ 中的小部件

python - python独立开发应该选择docker吗?

python - 在pyqt中显示相机