LoginSignup
0
0

More than 1 year has passed since last update.

juliaで出力したcsvファイルをpython numpyで呼び出す

Last updated at Posted at 2022-11-22

最近研究で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の配列にして戻す

良かったら使ってあげてください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0