2016-03-06 14 views
6

なぜ単純な配列の代わりにnumpy配列を使うのですか?彼らの主な違いは何ですか?NumPy配列と単純なPython配列の違いは何ですか?

+4

アレイとはどういう意味ですか?あなたは本当に[配列](https://docs.python.org/3/library/array.html)を意味していますか、 'list'(' [1,2,3] 'はリストではありません。配列)? –

+2

実際に配列を意味する場合は、明確にしてください。 – jonrsharpe

答えて

2

ナンシーアレイは型付きの配列です。メモリ内の配列には、均質で密集した数が格納されます。

Pythonリストは異機種のリストです。メモリ内のリストには、数値自体ではなくオブジェクトへの参照が格納されます。

これは、Pythonリストでは、コードがその番号にアクセスする必要があるたびにポインタの逆参照が必要であることを意味します。 numpy配列はnumpyベクトル演算で直接処理できますが、これらのベクトル演算はlistでコード化できるものよりもはるかに高速になります。

numpy配列の欠点は、配列内の単一の項目にアクセスする必要がある場合、numpyは数値をpython数値オブジェクトにボックス化/ unboxする必要があることです。異機種間のデータを保持することはできません。

+2

これは* list *に当てはまりますが、標準ライブラリにも存在する*配列*には当てはまりません。 – jonrsharpe

関連する問題