【发布时间】:2016-03-28 23:37:31
【问题描述】:
我有以下数组:
a= array([[ 1, 2, 3],
[ 1, 2, 3],
[ 1, 2, 3])
我知道np.random,shuffle(a.T) 将沿行对数组进行洗牌,但我需要的是它独立地洗牌每一行。如何在 numpy 中做到这一点?速度至关重要,因为会有几百万行。
对于这个特定的问题,每一行将包含相同的起始人口。
【问题讨论】:
-
@jpp 最初的问题并没有要求每列,到目前为止也没有答案试图解决它。所以,回滚到旧标题。这是公认解决方案的简单扩展,但可能会使寻找特定案例的人感到困惑。
-
@Divakar,关键是答案是相同的(只需将
axis=-1更改为axis=0)。并且标题更改是微不足道的为了让更多人找到unutbu的优秀解决方案。这里没有隐藏的动机,除了改进 SO。你不同意吗? -
@jpp 和高级索引部分。我们已经通过 dup 链接对其进行了改进,但正如我对寻找每列基础案例的人所说的那样,他们可能不知道如何扩展。因此,他们可能会遵循链接的副本。