2015-06-18 56 views
7

我工作的一個Jupyter筆記本電腦和目前使用朱莉婭如何在Julia(或Python)中將NxNxN數組(或Matrix)保存到文件中?

我想一個3x3x3的數組保存到文本文件裏,所以當我包括它在另一個筆記本,該陣列是一個3x3x3的數組了。

有什麼建議嗎? 在此先感謝。

+5

你需要它在純文本?如果沒有,你可能想看看HDF5.jl包。 – spencerlyon2

+1

您可以使用'writecsv' /'readcsv'保存值,但不保存維或類型(整數將被解析爲浮點)。不知道你是否介意鑄造和重塑。 'convert(Array {Int64},reshape(readcsv(「vals」),3,3,3))' –

+2

我正在使用'writecsv',但正如你所說的,它沒有保存尺寸或類型。我查看了HDF5.jl包,這正是我所需要的。謝謝! –

回答

8

您可以使用JLD.jl(朱莉婭數據)包:

Pkg.add("JLD") 
using JLD 
r = rand(3, 3, 3) 
save("data.jld", "data", r) 
load("data.jld")["data"] 

的JLD封裝的優點在於,它保留了確切的每個變量的類型信息。

+1

不要忘記''Pkg.add(「JLD」)'' – jjjjjj

+1

@jjjjjj我已更新答案,謝謝! – SalchiPapa

3

好吧我承認我是一個蟒蛇愛好者,儘管朱莉婭開始在我身上成長。所以作爲一個老的python用戶,有一個Julia包可以將數組轉換爲numpy npz文件,然後再讀取它們。例如:

x = reshape(1:27, 3,3,3) 
    Pkg.add("NPZ") 
    using NPZ 
    npzwrite("TEST.npz",x) 

現在(我現在用的是NPZ包這麼長),我以後可以加載此文件:

y = npzread("TEST.npz") 
+1

謝謝!我最終使用HDF5.jl包來存儲我的數組,因爲它可以節省維度和類型。我相信它幾乎與NPZ相同,但HDF5有一個適當的Julia數據擴展名(.jld),所以它對我更好 –

相關問題