我想知道是否有一種方法可以沿給定座標軸將多維數組(即ndarray
類型)展平,而無需在NumPy中進行復制。例如,我有一個2D圖像陣列,我希望將每個圖像平鋪到一個矢量上。所以,一個簡單的方法是numpy.array([im.flatten() for im in images])
,但是它會創建每個的副本。如何平鋪多維數組的軸而不在NumPy中複製?
10
A
回答
12
ravel
它:
>>> a = numpy.arange(25).reshape((5, 5))
>>> b = a.ravel()
>>> b[0] = 55
>>> a
array([[55, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
或者reshape
它:
>>> a = numpy.arange(27).reshape((3, 3, 3))
>>> b = a.reshape((9, 3))
>>> b[0] = 55
>>> a
array([[[55, 55, 55],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
在大多數情況下,這些都返回原數組的視圖,而不是一個副本。
7
如果你不知道你的輸入數組的形狀:
images.reshape((images.shape[0], -1))
-1
告訴重塑制定出其餘尺寸。這假設你 想平坦的第一軸的圖像。
相關問題
- 1. 如何重複或平鋪numpy數組,但每次平鋪時都要更改一個元素中的值?
- 2. 平鋪或重複Julia中的n維數組
- 3. 如何在NumPy/PyTables中的多個二維數組中形成多維數組?
- 4. 如何複製numpy數組中最後一個維度的值?
- 5. 如何將2D列表平鋪爲1D而不使用numpy?
- 6. 簡單的問題:在numpy中,如何製作一個多維數組數組?
- 7. 在java中複製多維數組
- 8. 如何創建多維numpy數組?
- 9. 複製多維數組
- 10. 「平鋪」使用numpy的
- 11. 組數組複製到多維數組
- 12. 複製Photoshop文檔的當前「視圖」而不必平鋪?
- 13. 如何將numpy二維數組與numpy一維數組相乘?
- 14. Numpy數組作爲多維numpy數組中的索引
- 15. numpy遍歷多維數組
- 16. 沿着一個軸的多維權重的Numpy平均
- 17. PHP多維數組平鋪文件夾視圖
- 18. 獲取numpy數組的多個軸的平均值
- 19. numpy中的多維數組乘法
- 20. numpy中多維數組的向量和
- 21. numpy中多維數組的自相關
- 22. 如何複製numpy的二維數組中的大熊貓2D數據幀
- 23. 搜索在多維數組複製PHP
- 24. 在多維數組中複製的合併數組
- 25. Numpy多維數組索引交換軸順序
- 26. numpy通過任意軸重塑多維數組
- 27. 如何製作一個3D數組的二維numpy數組?
- 28. 如何在平鋪視圖中製作ListView對象選擇整個平鋪而不僅僅是一個蒙版
- 29. 如何平衡numpy數組中的類?
- 30. 如何平鋪Spark中的元組?
謝謝! 「重塑」爲我做了訣竅。我之前想過會打破我的2D矩陣和向量之間的一對一映射。但不,不起作用! – 2012-04-07 06:00:33