Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【python3, numpy】arrayの文字列を別の型に変換する + csvを読み込み

python - How to convert an array of strings to an array of floats in numpy? - Stack Overflow

サンプルコード

import numpy as np

fname="hoge.txt"
a = np.loadtxt(fname, unpack=True, dtype=str)

y = a["x"].astype(np.float)
>|python|


hoge.txtというテキストファイルを読み込む
このときdtypeで指定できる型は1種類のみ、何もしないとfloat64になるはず
これを文字列にすると、aの中身はすべて文字列のarrayになる

aの中のxという要素は実は文字列じゃなくて、数字なのでそれをastypeでfloatに変換して取り出せる


csvデータの読み込みに、import csvとかやっていたが使いにくい・・・
csvの1行目を辞書型のkeyにして、縦方向に読み込むものだと、思っていたら
csvというパッケージではすべて横方向に読み込んでしまうらしい

あれこれやり方を調べていたら、numpyのloadtxtはcsv読み込みにも使えるらしい

import numpy as np

fname="hoge.csv"
a = np.loadtxt(fname, unpack=True, dtype=str, dtype="unicode", delimiter=',', skiprows=1)

これだと、1行目は無視することになってる
たいがいcsvの1行目は、列の説明だと思うので(dateとかtemperatureとか)

本当はそれを辞書型のkeyにして読み込みたかったけどやり方がわからない

ランキング参加中です

↓クリックしていただけると嬉しいです〜