Python で NumPy 配列をリストに変換する

Manav Narula 2023年10月10日
  1. tolist() メソッドを使用して、NumPy 配列をリストに変換する
  2. Python で for ループを使って NumPy 配列をリストに変換する
Python で NumPy 配列をリストに変換する

リストと配列は、Python で最も基本的で頻繁に使用されるコレクションオブジェクトの 2つです。

どちらも変更可能であり、共通の名前で要素のコレクションを格納するために使用され、すべての要素には、それにアクセスするために使用できる特定の位置があります。

ただし、いくつかの顕著な違いがあります。リストはすでに Python に組み込まれていますが、配列の場合は、arrays または NumPy モジュールをインポートし、使用する前に配列を宣言する必要があります。配列はまた、データをより効率的にメモリに格納し、数学演算に非常に使用されます。

このチュートリアルでは、numpy 配列をリストに変換します。

tolist() メソッドを使用して、NumPy 配列をリストに変換する

NumPy 配列の tolist() メソッドは、numpy 配列をリストに変換できます。

例えば、

import numpy as np

oned = np.array([[1, 2, 3]])
twod = np.array([[1, 2, 3], [4, 5, 6]])

print(oned.tolist())
print(twod.tolist())

出力:

[[1, 2, 3]]
[[1, 2, 3], [4, 5, 6]]

このメソッドは、配列全体を 1つの要素として扱うことに注意してください。そのため、2 次元配列で使用すると、リストのリストが返されます。

これを回避するために、tolist()flatten() または ravel() メソッドとともに使用できます。これにより、N-D 配列を線形 1-D 配列に変換できます。これらの方法はどちらも同じ機能を実行します。違いは、ravel() メソッドが配列の参照ビューを返し、元の配列に影響を与えるのに対し、flatten() メソッドは配列のコピーで機能することです。このため、ravel() 関数はより高速であると見なされ、占有するメモリが少なくなります。

次のコードは、これらの関数の使用法を示しています。

import numpy as np

oned = np.array([1, 2, 3])
twod = np.array([[1, 2, 3], [4, 5, 6]])

print(oned.flatten().tolist())
print(twod.flatten().tolist())


print(oned.ravel().tolist())
print(twod.ravel().tolist())

出力:

[1, 2, 3]
[1, 2, 3, 4, 5, 6]
[1, 2, 3]
[1, 2, 3, 4, 5, 6]

Python で for ループを使って NumPy 配列をリストに変換する

これは、プログラミングに不慣れな人や最終的なリストをカスタマイズしたい人にとっての基本的な方法です。配列を反復処理し、各要素を個別に空のリストに追加します。次のコードはこれを実装しています。

import numpy as np

arr = np.array([1, 2, 3])
lst = []

for x in arr:
    lst.append(x)

print(lst)

出力:

[1, 2, 3]
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python Array