如何在numpy数组中只调整行索引?

时间:2017-05-03 03:56:19

标签: python python-2.7 numpy

我有两个numpy数组。我想同时只对它们的行索引进行洗牌。虽然我对它们的行索引进行了均衡,然后当我改变它为什么它不会自动改变b

 a = np.arange(100).reshape(10,10)
 b = np.arange(10).reshape(10,1)
 a.shape[0]==b.shape[0]
 np.random.shuffle(a)
 print a
 print b

3 个答案:

答案 0 :(得分:0)

这没有任何意义,你想做的事情可能会如下所示:

a = np.arange(100).reshape(10,10)
b = np.arange(10).reshape(10,1)
p = np.random.permutation(a.shape[0])
a = a[p]
b = b[p]
print a
print b

答案 1 :(得分:0)

你不能通过这种方式与两个$http.get('url.jsp', data).then(successCallback, errorCallback); 数组结合,以强制它们保持相同的顺序。你可以做的是将订单保存在一个单独的数组中,然后按它排序。

numpy

答案 2 :(得分:0)

使用numpy.random.permutation

signIn.scopes = @[ kGTLAuthScopePlusLogin,@"profile"]; 

虽然numpy.random.shuffle对数组进行了就地排序,但在我的代码的最后两行中,只创建了一个所谓的import numpy as np a = np.arange(100).reshape(10,10) b = np.arange(10).reshape(10,1) perm = np.random.permutation(a.shape[0]) print(a[perm, :]) print(b[perm, :]) 数组viewa 。如果您之后检查ba,它们仍然是相同的。因此,如果您想使用随机播放的版本,则应使用ba = a[perm, :]之类的内容。