2
A
回答
2
方法#1:下面是重塑成基于所述组尺寸的3D
阵列的方法,索引与从np.random.permutation
得到混洗索引的块的索引和最后重塑回2D
-
N = 5 # Blocks of N rows
M,n = a.shape[0]//N, a.shape[1]
out = a.reshape(M,-1,n)[np.random.permutation(M)].reshape(-1,n)
采样运行 -
In [141]: a
Out[141]:
array([[89, 26, 12],
[97, 60, 96],
[94, 38, 54],
[41, 63, 29],
[88, 62, 48],
[95, 66, 32],
[28, 58, 80],
[26, 35, 89],
[72, 91, 38],
[26, 70, 93]])
In [142]: N = 2 # Blocks of N rows
In [143]: M,n = a.shape[0]//N, a.shape[1]
In [144]: a.reshape(M,-1,n)[np.random.permutation(M)].reshape(-1,n)
Out[144]:
array([[94, 38, 54],
[41, 63, 29],
[28, 58, 80],
[26, 35, 89],
[89, 26, 12],
[97, 60, 96],
[72, 91, 38],
[26, 70, 93],
[88, 62, 48],
[95, 66, 32]])
方法2:你也可以简单地使用np.random.shuffle
用于原位变化 -
np.random.shuffle(a.reshape(M,-1,n))
采样运行 -
In [156]: a
Out[156]:
array([[15, 12, 14],
[55, 39, 35],
[73, 78, 36],
[54, 52, 32],
[83, 34, 91],
[42, 11, 98],
[27, 65, 47],
[78, 75, 82],
[33, 52, 93],
[87, 51, 80]])
In [157]: N = 2 # Blocks of N rows
In [158]: M,n = a.shape[0]//N, a.shape[1]
In [159]: np.random.shuffle(a.reshape(M,-1,n))
In [160]: a
Out[160]:
array([[15, 12, 14],
[55, 39, 35],
[27, 65, 47],
[78, 75, 82],
[73, 78, 36],
[54, 52, 32],
[33, 52, 93],
[87, 51, 80],
[83, 34, 91],
[42, 11, 98]])
相关问题
- 1. 二维numpy数组的加权随机采样
- 2. 生成具有随机行长度的随机二维数组
- 3. 如何将numpy二维数组与numpy一维数组相乘?
- 4. 在numpy的二维数组
- 5. 二维数组单排序
- 6. 对二维数组排序
- 7. 的Python NumPy的排序维数组
- 8. 用一行对二维数组排序
- 9. 按colum指数排序numpy二维数组
- 10. 随机化(随机播放)多维数组到另一个二维数组
- 11. Java二维数组随机分配
- 12. numpy二维数组递归
- 13. 如何排序一半的二维数组大小排序(numpy的)
- 14. C - 按一维排序二维数组
- 15. 索引NumPy的二维数组与另一二维数组
- 16. 按功能排序(对称)numpy二维数组。 (norm)
- 17. 排序随机数组
- 18. 随机数组排序
- 19. 将二维numpy数组转换为三维数组
- 20. 将一维数组为二维数组
- 21. 以随机顺序的多维数组
- 22. Java程序的排序随机数组
- 23. 二维数组的排列
- 24. IndexError索引的二维数组与一维数组(NumPy的)
- 25. 对随机二级值的PHP数组重新排序
- 26. 高效的二维numpy数组统计
- 27. 具有numpy arange的二维数组
- 28. numpy的 - 二维数组索引
- 29. 与将二维数组按升序排序相关的谜题
- 30. 如何获得numpy二维数组中列的排名?