Python で 3D 配列を 2D 配列に変換する

Muhammad Maisam Abbas 2021年3月24日
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 配列に変換したい場合です。

次のコード例は、numpy.reshape() 関数を使用して、Python で次元 (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