yiskw note

機械学習やプログラミングについて気まぐれで書きます

【Python】1行で複数の変数に同時に値を代入するのは遅い

概要

ネットでPythonの記事を読んでいると、以下のような1行で複数の変数に同時に値を代入する方法が速いという記事を見かけました。

a, b, c = 1, 2, 3

こちらについてちょっと怪しいなと思い、速度の比較、及び速度差の原因について調査してみました。
結論としては、1行で複数の変数に値を代入するのは遅いことがわかりました。(ただし、複数の変数に同じ値を代入する場合は、さほど遅くない)

以降調べた内容についてメモを残しています。
何か間違い等ございましたら、コメントにてご指摘いただけると幸いです。

続きを読む

【Python】list / array / numpy.array を比較してみた

概要

最近、Pythonの標準ライブラリにarrayというデータ型があるのを知りました。 今回は、このarrayの勉強も兼ねて、Pythonlistarraynumpy.arrayの3つを速度、メモリの観点から比較し、それぞれの使用用途について検討してみました。 その結果を備忘録としてこちらに残しておきます。もし間違い等ございましたら、コメントにてご指摘いただけると幸いです。

先に検証の結果を簡潔にまとめると、それぞれの使い道は以下のようになるのかなと考えております。

  • list ... 配列の各要素に高速にアクセスしたい場合。複数の型のデータを保持したい場合。
  • array ... 配列の要素が単一のデータ型で、配列の各要素へアクセスする必要があり、かつメモリ使用量をメモリ使用量を抑えたい場合。
  • numpy.array ... 配列の各要素にアクセスする必要がなく、メモリ使用量を抑えたい場合。配列の計算を行いたい場合。
続きを読む