Читать CSV в массив - PullRequest
       6

Читать CSV в массив

0 голосов
/ 28 января 2019

В Julia, используя CSV.jl, можно прочитать DataFrame в файл .csv:

using CSV

df = CSV.read("data.csv", delim=",")

Однако, как я могу вместо этого прочитать файл CSV вVector{Float64} тип данных?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вы можете конвертировать DataFrame в Matrix определенного типа.Если нет пропущенных данных, это должно работать.Если отсутствуют данные, просто опустите тип в convert.

arr = convert(Matrix{Float64}, df)

Вы можете вызвать vec для результата, чтобы получить вектор, если это действительно то, что вы хотите.

В зависимости от файла, я бы пошел с readdlm, как предложено в предыдущем ответе.

0 голосов
/ 28 января 2019

Вы можете использовать модуль DelimitedFiles из stdlib:

julia> using DelimitedFiles

julia> s = """
       1,2,3
       4,5,6
       7,8,9"""
"1,2,3\n4,5,6\n7,8,9"

julia> b = IOBuffer(s)
IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=17, maxsize=Inf, ptr=1, mark=-1)

julia> readdlm(b, ',', Float64)
3×3 Array{Float64,2}:
 1.0  2.0  3.0
 4.0  5.0  6.0
 7.0  8.0  9.0

Я показываю вам пример чтения из IOBuffer для полной воспроизводимости, но вы также можете читать данные из файла.В строке документации readdlm вы можете найти более подробную информацию о доступных опциях.

Обратите внимание, что вы получите Matrix{Float64} не Vector{Float64}, но я понимаю, что это то, что вы хотели.Если нет, то для преобразования матрицы в вектор можно вызвать функцию vec после считывания данных в.

...