Julia fileIO関連記事
最終更新:2020/11/14
ファイルIO関連のメモ.
Julia Version 1.5.0
ファイルから読む
delimited data
ここに 書かれているように, 基本的には普通のfileIOだが, 便利だなと思ったのは, fopen, 読み取り, fclose まで一括でやる書き方ができる点.
open(f->読み取り函数(f, 引数), ファイル名)
でできる.
例えば, カンマ区切りの261行601列データ(data.txt)なら, delimited dataを読む函数 を用いて, 以下のように読めばいい.
Julia
using DelimitedFiles d = open(f->readdlm(f, ','), "data.txt"); % 結果 julia> size(d) (261, 601)
csv からdataframeに
ヘッダーつきのデータをデータフレームとして読む.
以下のようなデータを用意した. (stannによるMCMCの計算結果)
CSV (trial1.csv)
a b c sigma lp__ 1 -8.41876 1.39634 1.00701 14.6212 -33600.60 2 -8.68538 1.39908 1.02627 14.5946 -33600.00 3 -8.59176 1.38200 1.04445 14.5707 -33599.93 4 -8.45973 1.41427 0.98476 14.6627 -33603.28 5 -9.73972 1.40044 1.11674 14.7900 -33605.41 : :
DataFrames.jlのチュートリアル に則って, 以下のようによんでみた.
Julia
using CSV using DataFrames d = DataFrame(CSV.File("trial1.csv")) % 結果 julia> size(d) (4000, 6) julia> typeof(d) DataFrame julia> d[1:3, :] 3×6 DataFrame │ Row │ Column1 │ a │ b │ c │ sigma │ lp__ │ │ │ Int64 │ Float64 │ Float64 │ Float64 │ Float64 │ Float64 │ ├─────┼─────────┼──────────┼─────────┼─────────┼─────────┼──────────┤ │ 1 │ 1 │ -8.41876 │ 1.39635 │ 1.00702 │ 14.6212 │ -33600.6 │ │ 2 │ 2 │ -8.68538 │ 1.39908 │ 1.02627 │ 14.5947 │ -33600.0 │ │ 3 │ 3 │ -8.59177 │ 1.38201 │ 1.04445 │ 14.5708 │ -33599.9 │
というかそもそも, CSV.jlを使えば, delimited dataのインポートも簡単にできるのだと思う.