2012/1/21

Pythonでスペース区切り文字列を数値にキャストしつつリスト化する方法。

Filed under: Computer — Magician @ 22:34:39

単にスペース区切りのString型文字列(text)をリストに変換するだけだったら、次のようにコーディングするのが普通だろう。

list = text.split()

ただ、このままだと数値計算で利用するには極めて都合が悪い(list内の要素が全部String型だから)。
そこで、どうすればsplit()した文字列リストを簡単に数値リスト化出来るか考えてみた。
それも、極力実行速度重視で。

思い付いた方法は次の2つ。

list = numpy.array(text.split()) #import numpy
list = [float(item) for item in text.split()] #List Comprehension

それぞれsplit()しただけの場合と比べてみたら、前者は約4倍、後者は約8倍の時間を要した。
実行時間だけに注目すると、List ComprehensionするのではなくNumPyを使うのが良さそう。

ちなみに、numpy.array()だとNumPyのArray型に変換されてしまうので若干気持ち悪い。
試しにlist(numpy.array(text.split()))とかやってみたんだが、これだとList Comprehensionした場合と大差無い処理速度になってしまった。
余計な事はしない方が良さそうだ。

Tag(s): , ,

コメントはまだありません »

コメントはまだありません。

TrackBack URL

コメントする

  • 最近のエントリ

  • カテゴリ一覧

  • タグクラウド

  • 最近のコメント

  • pagerank
  • HTML convert time: 0.563 sec. Powered by WordPress 3.0