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數組進行索引