День 3 Летней школы Julia
Автор
Установка пакетов
In [ ]:
Pkg.add(["CSV", "MAT", "DataFrames", "MATLAB", "FileIO", "EzXML", "ImageShow", "Images", "ImageMorphology", "Noise", "ImageBinarization", "ImageDraw", "TickTock"])
DataFrames
Пакет DataFrames.jl предоставляет инструментарий для работы с
табличными данными в Julia. Это отличное и
универсальное средство для анализа и обработки данных.
Пакет DataFrames.jl занимает центральное место в экосистеме
Julia для работы с данными и тесно интегрирован с рядом
других библиотек.
In [ ]:
using DataFrames
data = DataFrame(pet=["cat", "dog", "dog", "fish", "cat", "dog", "cat", "fish"],
children=[4., 6, 3, 3, 2, 3, 5, 4],
salary=[90, 24, 44, 27, 32, 59, 36, 27])
Out[0]:
Чтение и запись данных в различные типы файлов
In [ ]:
path = "$(@__DIR__)/";
CSV
In [ ]:
df = DataFrame(rand(10, 10), :auto)
Out[0]:
In [ ]:
using CSV
In [ ]:
CSV.write(path * "Resources/data.csv", df)
Out[0]:
In [ ]:
Matrix(CSV.read(path * "Resources/data.csv", DataFrame))
Out[0]:
TXT
In [ ]:
write(path * "Resources/data.txt", "Пример")
Out[0]:
In [ ]:
open(io->read(io, String), path * "Resources/data.txt")
Out[0]:
MAT
In [ ]:
using MATLAB, MAT
In [ ]:
mat"p = genpath($path); addpath(p);"
In [ ]:
a = [1 2 3]
mat"a=$a"
mat"save($path + string('Resources/data.mat'),'a')"
In [ ]:
b = matopen(path * "Resources/data.mat")
read(b, "a")
Out[0]:
JLD2
In [ ]:
using FileIO
In [ ]:
save(path * "Resources/example.jld2", Dict("A" => "test", "B" => 12))
In [ ]:
load(path * "Resources/example.jld2")
Out[0]:
In [ ]:
b = load(path * "Resources/example.jld2", "B")
Out[0]:
bin
In [ ]:
open("Resources/file.bin", "w") do io
write(io, Int32(12)) # Запишем целое число типа Int32
write(io, Float64(3.14)) # Запишем вещественное число типа Float64
write(io, "Test\n") # Запишем строку
end
Out[0]:
In [ ]:
open("Resources/file.bin", "r") do io
num_int = read(io, Int32) # Считаем целое число типа Int32
num_float = read(io, Float64) # Считаем вещественное число типа Float64
str = String(read(io)) # Считаем оставшуюся часть файла как строку
println("Целое число: ", num_int)
println("Вещественное число: ", num_float)
print("Прочитанная строка: ", str)
end
xml
In [ ]:
using EzXML
In [ ]:
using EzXML
doc = parsexml("""
<primates>
<genus name="Homo">
<species name="sapiens">Human</species>
</genus>
<genus name="Pan">
<species name="paniscus">Bonobo</species>
<species name="troglodytes">Chimpanzee</species>
</genus>
</primates>
""")
# Сохраняем документ в файл
write("Resources/file.xml", doc)
Out[0]:
In [ ]:
open("Resources/file.xml", "r") do io
str = String(read(io))
println(str)
end