我有一个numpy数组,如下所示[-1,0,1,0,1,2,1,2,3,...,n-1,n,n + 1,n,n + 1, n + 2 ..]我想将数组以3块的形式进行洗牌,是否有一种有效的方法可以在numpy中完成它?
我知道你可以使用下面的shuffle方法对一个numpy数组进行洗牌,但这给了我一个完全洗牌的数组.有没有办法在numpy中大块洗牌?
import numpy.random as rng
ind = numpy.arange(100)
rng = numpy.random.RandomState(123)
rng.shuffle(ind)
Run Code Online (Sandbox Code Playgroud)
重塑为3列. shuffledoc说它只是改变了第一个维度:
ind=np.arange(99) # multple of 3
ind=ind.reshape(-1,3)
rng.shuffle(ind)
ind.flatten()
Run Code Online (Sandbox Code Playgroud)