#python #julia
Вопрос:
До сих пор я использовал Python для анализа данных моделирования, но иногда это происходит медленнее, чем я ожидал. Итак, в эти дни я пытался использовать Джулию, но мне трудно ознакомиться с ней, а также получить информацию так же много, как на python. Вот почему я здесь за помощью!
Q1. Лучший способ импортировать массив непосредственно из файла и экспортировать массив в файл в Julia (я использовал «numpy genfromtxt» и «numpy savetxt» в python) Q2. Лучший способ прочитать строки и экспортировать их как строки, но также использовать определенный формат («.3 f»%, rjust, ljust и т. Д.) В Julia
Чтобы правильно понять мой вопрос, я также оставляю код python для этого вопроса.
Q1. Лучший способ импортировать массив непосредственно из файла и экспортировать массив в файл.
This array is in the test.txt file
1.1 -399.16
1.2 -398.21
2.4 -399.59
4.5 -401.51
2.2 -1071.64
2.3 -1074.35
5.5 -1077.36
9.7 -1069.9
14.0 -1731.35
14.2 -1739.84
import numpy as np
data = np.genfromtxt('D:\JULIA\test.txt')
np.savetxt('D:\JULIA\outdata.txt', data, fmt=".3f")
Q2. Лучший способ прочитать строки и экспортировать их как строки, но использовать определенный формат («.3 f»%, rjust, ljust и так далее.)
data = open('D:\JULIA\test.txt','r')
outdata = open('D:\JULIA\outdata.txt','w')
lines= data.readlines()
for line in lines:
splitline = line.split()
col1 = float(splitline[0])
col2 = float(splitline[1])
outdata.write(('.3f' % col1).rjust(20) ', ' ('.3f' %col2).rjust(40) 'n')
data.close()
outdata.close()
Пожалуйста, ответьте мне, есть ли такие же или похожие способы в Джулии или просто в Джулии следует использовать другой способ.
Ответ №1:
У Джулии есть несколько способов добиться одного и того же результата. Наиболее естественным, учитывая ваш опыт np.savetxt
работы, вероятно DelimitedFiles
, является стандартная библиотека:
using DelimitedFiles
data = readdlm("input.txt")
writedlm("output.txt", data)
Для получения более подробной информации ознакомьтесь с документацией об этих функциях. В качестве альтернативы существуют различные пакеты для сохранения данных на диск, такие как JLD.jl, JLD2.jl, BSON.jl, HD5F.jl, … Список огромен.
Комментарии:
1. Большое вам спасибо за ваш быстрый ответ. Но не могли бы вы привести мне пример формата данных? так же, как я упоминал выше -> >
('.3f' % col1).rjust(20)
илиnp.savetxt('D:\JULIA\outdata.txt', data, fmt=".3f")
Как я могу определить длину и расстояние между данными или десятичной точкой в Julia как для строки, так и для массива?2. Существует также несколько методов для управления строковыми форматами в языке.
Printf
Стандартная библиотека предоставляет@sprintf
, например. Если вам нужен синтаксис, подобный Python, проверьте пакет github.com/JuliaIO/Formatting.jl