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. 排序二维数组numpy的由行的中间值
- 3. 二维numpy数组的加权随机采样
- 4. 生成具有随机行长度的随机二维数组
- 5. 如何对用随机数填充的二维数组进行排序
- 6. 如何将numpy二维数组与numpy一维数组相乘?
- 7. 二维数组的排序
- 8. 在numpy的二维数组
- 9. 排序二维数组PHP
- 10. 对二维数组排序
- 11. 二维数组单排序
- 12. 排序二维Javascript数组
- 13. 的Python NumPy的排序维数组
- 14. 用一行对二维数组排序
- 15. Python numpy保留排序的二维数组的索引列表
- 16. 按colum指数排序numpy二维数组
- 17. 随机化(随机播放)多维数组到另一个二维数组
- 18. 将一维数组转换为numpy的二维数组
- 19. Java二维数组随机分配
- 20. numpy二维数组递归
- 21. Numpy-从二维数组
- 22. 如何排序一半的二维数组大小排序(numpy的)
- 23. C - 按一维排序二维数组
- 24. 索引NumPy的二维数组与另一二维数组
- 25. 按功能排序(对称)numpy二维数组。 (norm)
- 26. 随机数组排序
- 27. 排序随机数组
- 28. 随机数组排序
- 29. 将二维numpy数组转换为三维数组
- 30. 用二维数组对三维numpy数组进行索引