0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Numpy.loadtxtで読み込んだ文字列が切り捨てられるのを止める

Posted at

備忘録です。

状況

Numpyの loadtxtを使って文字列の配列を読み込んだ際に、一部の文字列が途中で切り捨てられた形になっていた。
例えば
short,short,...,longlonglonglonglong,... というような内容のファイルを
np.loadtxt("file", delimiter=",", dtype=str)のように読み込むと、longlonglonglonglonglonglとして読み込まれていた。

解決法

loadtxtの引数dtypeに単なるstrではなくU20のように文字列の長さの上限を決めて指定するようにする。

要素数の少ないファイルで実験するとそもそも上記の状況が起こらなかった。(上記のような文字列の例だと読み込み後の配列は自動的にdtype='<U20'が設定されていた。)
恐らく、読み込む要素が多い場合には前のほうの要素だけから文字列長の上限を先に決めていて、後ろのほうで初めて長い文字列が登場した場合に上記のように切り捨てが発生するのだと思われる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?