【Python】CSV, Excelなどのデータ読み込み
いろいろなモジュールがあるので一度まとめ。
numpy.genfromtxt
メリット
- numpyのメソッドなので他のモジュールをインポートする必要なし
- 読み込んだデータ(戻り値)がndarrayなので使いやすい
- csvモジュールみたいに一行ずつの読み込みではなく一度に処理可能.。
- 読む込む行、列の指定も可能(読み込む行はnumpy1.16.0以降)
- 書き出しのためのsavetxt()もあり便利。
- savetxtで追記するにはファイルを追記モードで開いてハンドルをsavetxtへ渡すことで可能。
with open("text.txt", 'a') as f: np.savetxt(f, data)
デメリット
- エクセル等のファイルには非対応
使い方
np.genfromtxt(data_path, delimiter="\t", skip_header=5, skip_footer=3, max_rows=5) # delimiter : "," , "\t" など # skip_header : エクセルで6行目から読み込ませたい場合は6 # skip_footer : 下から数えて何行分を読み込まないかを指定 # max_rows : 読む込む行数を指定,skip_footerと同時使用しないこと
xlrd
pandas
メリット
- データの加工や計算はメソッドがいくつか用意されていて便利
デメリット
- インポートするモジュールの容量が大きく、配布には不向き(未検証につき推測)
設定まとめ
Bluetooth設定
かなりハマる。。
qiita.com
www.trifields.jp
mononichi.com
導入と初期セットアップ
久々に使用したので覚え書き。
導入
- imgのダウンロード
Raspbian Stretch with desktop
Kernel version:4.14
Download Raspbian for Raspberry Pi
- SDカードのフォーマット
SD Memory Card Formatter
- imgファイルの書き込み
Etcher
初期設定
- Static IP
【Python】Python用Matlabエンジンのインストール
PythonからMatlabで作成したmファイル等を読み出したい場合に使用。
使用しているMatlabのバージョンによって使用可能なPythonのバージョンに制約があるので要注意。
Matlab2016a -> Python 3.4, 3.3, 2.7
普段はPython3.7を使用してるためvirtualenvを使用してpython3.4をセットアップ。
以下は仮想環境でPython3.4が準備できた後のmatlabエンジンのインストール方法
- 環境変数でPython3.4が3.7よりも先に呼ばれるようにする
- コマンドプロンプトを管理者権限で起動
- matlabエンジンのインストール用ファイル位置に移動
cd C:\Program Files\MATLAB\R2016a\extern\engines\python # matlabルートファイル下
- python3.4でインストール.通常はC:\Python34\Lib下のsite-packageにインストールされるようだが
viatualenvを使用していてフォルダが異なるのでそのフォルダを指定
python setup install --prefix="C:\*****\Python_workspace\py34" # Lib\site-package\matlabが作成されるのでLibフォルダが存在する階層を指定
【Python】Anacondaよく使うコマンドと操作
- 仮想環境の一覧
conda info --envs
- 仮想環境のactivate
conda activate conda_addpackage1
- ローカルにダウンロードしたcondaパッケージのインストール
conda install C:\Users\*****\AppData\Local\conda\conda\pkgs\***.tar.gz2
- インストールされたパッケージの確認
conda list
【Python】複数のndarray行列からよく使うm×n配列のndarrayを作成する(縦軸:時系列データ, 横軸:データ種類)
時系列データと時間を格納した行列があるとして
それから1つの配列を作成する方法
# データ準備 Time = np.array([0, 1, 2, 3....]) a = np.array([0, 1.1, 2.5, 3....]) b = np.array([0.5068, 0.840, 0.4075, 0.8574....]) # m×nの配列作成 matrix = np.concatenate((time.reshape(len(time), 1), a.reshape(len(a), 1), b.reshape(len(b), 1)), axis=1) >>array([[ 0. , 0. , 0.5068], [ 1. , 1.1 , 0.84 ], [ 2. , 2.5 , 0.4075], [ 3. , 3. , 0.8574]])
ポイントは
- reshapeを使ってn×1配列に変換すること(n×1配列とn行列はnumpyでは振る舞いが異なるので注意)と
- concatenateでaxis=1にすること。
- concatenateのデータはタプルでまとめること(カッコを忘れずに)