最近研究でjuliaのコードを見ることがあり、juliaで出した結果とpythonの結果を見比べることがありました。
しかし、juliaで出した結果をそのまま読み込むライブラリが無かったので読み出し方をメモっておきます。
juliaのプログラム
juliaのプログラムで次のようなcomplex配列を作る。
using CSV, DataFrames
# 出力する配列の作成
test_matrix = zeros(ComplexF64,8,8)
# 要素の代入
test_matrix[3,3] = 1 + 3im
# 配列をデータフレームに変換して出力
ham = DataFrame(test_matrix,:auto)
CSV.write("test.csv",ham,writeheader=false)
これを見てみると
0 + 0im,0 + 0im,...
0 + 0im,0 + 0im,...
こんな感じになっており、numpyで直接は呼び出せない。
呼び出しプログラム
そこで、次のようなプログラムを作成して呼び出した。
import numpy as np
def get_julia_csv(filename):
with open(filename,"r") as f: # ファイルから読み込んで2次元リストにする
elems = [line.split(",") for line in f.read()[:-1].split("\n")]
res = []
for line in elems:
lineres = []
for elem in line:
real,_,imag = elem.split(" ") # julia の形式 x + yimをsplitする
lineres.append(float(real)+float(imag[:-2])*(1j if _=="+" else -1j)) # complex型として作成
res.append(lineres)
return np.array(res) # numpyの配列にして戻す
良かったら使ってあげてください