データ処理では、多くの場合、numpy 配列をリストに変換する必要があります。 Numpy 配列は非常に強力なデータ構造ですが、場合によっては、さらなる操作にリストを使用する必要があります。同時に、numpy 配列とリストの間の変換が必要な操作もいくつかあります。この記事では、numpy配列をリストに変換する方法と具体的なコード例を紹介します。
1. tolist() メソッドを使用する
tolist() メソッドは numpy で提供されており、単純に numpy をリストに変換できます。以下に例を示します。
import numpy as np a = np.array([[1,2,3], [4,5,6]]) a_list = a.tolist() print(a_list)
出力結果:
[[1, 2, 3], [4, 5, 6]]
tolist() メソッドは非常に単純ですが、比較的非効率です。より大きな配列を処理する必要がある場合、tolist() メソッドは非常に遅くなる可能性があります。
2. キャッシュ メソッドを使用する
大きな numpy 配列を処理する際の効率を向上させたい場合は、キャッシュ メソッドを使用できます。つまり、numpy の要素を 1 つずつリストに追加します。以下に例を示します。
import numpy as np a = np.array([[1,2,3], [4,5,6]]) # np.ndarray.flat 属性将返回一个迭代器,遍历数组中的所有元素 a_list = [item for item in a.flat] print(a_list)
出力結果:
[1, 2, 3, 4, 5, 6]
この方法を使用すると、numpy と list 間の頻繁な変換が回避され、効率が向上します。
3. reshape メソッドを使用する
reshape メソッドでは numpy 配列をリストに似た形状に変形でき、リストは flatten メソッドで拡張できます。以下は例です:
import numpy as np a = np.array([[1,2,3], [4,5,6]]) a_reshape = a.reshape(-1) a_list = a_reshape.tolist() print(a_list)
出力結果:
[1, 2, 3, 4, 5, 6]
reshape メソッドは配列を 1 次元配列に変換し、次に tolist() メソッドを使用してそれを 1 次元配列に変換できます。リスト。
4. list() メソッドを使用する
list() メソッドを使用すると、numpy 配列をリストに直接変換できますが、配列の次元に注意する必要があります。この方法は、次元が 1 の場合にのみ機能します。
import numpy as np a = np.array([1,2,3]) a_list = list(a) print(a_list)
出力結果:
[1, 2, 3]
配列の次元が 1 でない場合は、他の方法を使用する必要があります。
概要
上記は、numpy 配列をリストに変換するためのいくつかの方法であり、その中で tolist() メソッドが最も一般的な方法ですが、効率は比較的低くなります。大規模な配列を扱う場合、キャッシュ メソッドと再形成メソッドを使用すると効率が向上します。私たちは自分自身のニーズに応じて最適な方法を選択する必要があります。
完全なコードを添付します:
import numpy as np # tolist()方法 a = np.array([[1,2,3], [4,5,6]]) a_list = a.tolist() print(a_list) # 缓存方法 a = np.array([[1,2,3], [4,5,6]]) a_list = [item for item in a.flat] print(a_list) # reshape方法 a = np.array([[1,2,3], [4,5,6]]) a_reshape = a.reshape(-1) a_list = a_reshape.tolist() print(a_list) # list()方法 a = np.array([1,2,3]) a_list = list(a) print(a_list)
出力結果:
[[1, 2, 3], [4, 5, 6]] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3]
以上がnumpy をリストに変換: データ処理効率を向上させるヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。