Julia fileIO関連記事

ファイル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のインポートも簡単にできるのだと思う.

ファイルへ書き込む

未投稿

この記事のTOP    BACK    TOP