在 Python 中將 3D 陣列轉換為 2D 陣列
Muhammad Maisam Abbas
2021年3月21日
在本教程中,我們將討論在 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()
函式返回一個元組,其中包含陣列每個維度中的元素。
Author: Muhammad Maisam Abbas
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