首頁 >後端開發 >Python教學 >如何將 4D NumPy 陣列重塑為 2D 陣列?

如何將 4D NumPy 陣列重塑為 2D 陣列?

Susan Sarandon
Susan Sarandon原創
2024-11-02 05:27:29423瀏覽

How can I reshape a 4D NumPy array into a 2D array?

在NumPy 中將4D 數組重塑為2D 數組背後的直覺和概念

理解挑戰

重塑🎜>理解挑戰

重塑多維數組NumPy 中的計算可能很棘手,尤其是在處理4D 數組等高維度資料時。挑戰在於理解如何在不改變資料值的情況下操縱數組的軸來實現所需的形狀。

重塑形狀的一般方法

  1. 重塑nd 維(nd) 陣列涉及兩步驟過程:
  2. 排列軸:重新排序數組的軸以與所需的形狀對齊。這可以使用 numpy.transpose() 或 numpy.rollaxis() 等函數來實現。
Reshape

:使用 numpy.reshape() 透過分割或分割來修改陣列的形狀合併軸。

具體案例:4D 到 2D 重塑

  1. 在給定的範例中,4D 輸入陣列被重塑為 2D 陣列。使用上面概述的一般方法:
  2. 排列軸:為了對齊尺寸,軸按如下方式重新排列:(2,0,3,1)。這意味著第二維變成第一維,第一維變成第二維,第三維變成第三維,第四維變成第四維。
Reshape

:軸排列後,陣列為使用 reshape() 重塑為所需的 (4, 4) 形狀。

關鍵見解

關鍵見解是重塑過程涉及分解排列成更小的塊,然後將其重新組裝成所需的形狀。透過仔細操作軸並使用適當的重塑操作,我們可以有效地轉換多維數組。

其他範例

為了說明這種方法的通用性,請考慮以下範例:

範例:3D 陣列到2D 矩陣

<code class="python">>>> import numpy as np

>>> arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

>>> permuted = np.transpose(arr, (1, 0, 2))

>>> reshaped = permuted.reshape(4, 3)

>>> print(reshaped)
[[1 2 3]
 [4 5 6]
 [7 8 9]
 [10 11 12]]</code>
考慮一個維度為(2, 2, 3) 的3D 陣列。要將其重塑為維度為 (4, 3) 的二維矩陣,可以將軸排列為 (1, 0, 2),然後如下重塑:

以上是如何將 4D NumPy 陣列重塑為 2D 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn