簡體   English   中英

如何將 3D 矩陣的數字插入二維矩陣?

[英]How can I insert the numbers of the 3D matrix into 2D matrix?

假設 A 是一個像下面這樣的三維矩陣:

A = [np.zeros((3, 8)) for _ in range(20)]

B 是一個二維矩陣,有 60 行和 8 列包含數字。 想把矩陣B的數放到矩陣A中,用循環寫代碼怎么辦?

A[0][0] = B[0] 
A[0][1] = B[1] 
A[0][2] = B[2] 
A[1][0] = B[3]
A[1][1] = B[4]
A[1][2] = B[5]
...
A[20][0] = B[58]
A[20][1] = B[59]
A[20][2] = B[60]

謝謝

我希望我已經理解你的問題了。 您可以使用.flat + 索引:

A = [np.zeros((3, 8)) for _ in range(20)]
B = np.arange(60 * 8).reshape(60, 8)

for i, subl in enumerate(A):
    subl.flat[:] = B.flat[i * 3 * 8 :]

print(*A, sep="\n\n")

印刷:

[[ 0.  1.  2.  3.  4.  5.  6.  7.]
 [ 8.  9. 10. 11. 12. 13. 14. 15.]
 [16. 17. 18. 19. 20. 21. 22. 23.]]

[[24. 25. 26. 27. 28. 29. 30. 31.]
 [32. 33. 34. 35. 36. 37. 38. 39.]
 [40. 41. 42. 43. 44. 45. 46. 47.]]

...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM