在 Python 中將 3D 陣列轉換為 2D 陣列

Muhammad Maisam Abbas 2021年3月21日
在 Python 中將 3D 陣列轉換為 2D 陣列

在本教程中,我們將討論在 Python 中將 3D 陣列轉換為 2D 陣列的方法。

在 Python 中使用 numpy.reshape() 函式將 3D 陣列轉換為 2D 陣列

[numpy.reshape() 函式](numpy.reshape-NumPy v1.20 手冊)更改陣列形狀而不更改其資料。numpy.reshape() 返回具有指定尺寸的陣列。例如,如果我們有一個尺寸為 (4, 2, 2) 的 3D 陣列,我們想將其轉換為尺寸為 (4, 4) 的 2D 陣列。

以下程式碼示例向我們展示瞭如何在 Python 中使用 numpy.reshape() 函式將尺寸為 (4, 2, 2) 的 3D 陣列轉換為尺寸為 (4, 4) 的 2D 陣列。

import numpy
arr = numpy.array(
    [[[ 0,  1],
      [ 2,  3]],

      [[ 4,  5],
      [ 6,  7]],

      [[ 8,  9],
      [10, 11]],

      [[12, 13],
      [14, 15]]]
      )
newarr = arr.reshape(4,2*2)
print(newarr)

輸出:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]

在上面的程式碼中,我們首先使用 numpy.array() 函式初始化 3D 陣列 arr,然後使用 numpy.reshape() 函式將其轉換為 2D 陣列 newarr

下面的程式碼示例演示了由於某種原因,如果我們不知道 3D 陣列的確切尺寸,則可以執行相同操作的另一種方法。

import numpy
arr = numpy.array(
    [[[ 0,  1],
      [ 2,  3]],

      [[ 4,  5],
      [ 6,  7]],

      [[ 8,  9],
      [10, 11]],

      [[12, 13],
      [14, 15]]]
      )
newarr = arr.reshape(arr.shape[0], (arr.shape[1]*arr.shape[2]))
print(newarr)

輸出:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]

在上面的程式碼中,我們使用 numpy.shape() 函式指定 newarr 的尺寸。numpy.shape() 函式返回一個元組,其中包含陣列每個維度中的元素。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - NumPy Array