首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CSV文件导入为矩阵

将CSV文件导入为矩阵
EN

Stack Overflow用户
提问于 2019-04-17 22:24:42
回答 3查看 2.7K关注 0票数 2

我想导入一个CSV文件(file.csv)作为一个矩阵在朱莉娅,以绘制它作为一个热图使用GR。我的CSV文件包含255行和255个条目。下面是CSV文件中的一些内容,以说明行的格式:

file.csv

代码语言:javascript
复制
-1.838713563526794E-8;-1.863045549663876E-8;-2.334704481052452E-8 ...
-1.7375447279939282E-8;-1.9194929690414267E-8;-2.0258124812468942E-8; ...
⋮
-1.1706980663321613E-8;-1.6244768693064608E-8;-5.443335580296977E-9; ...

注:省略号(.)不是CSV文件的一部分,而是表示已省略了所有内容。

我尝试使用下面的m = CSV.read("./file.csv")行将文件导入为一个矩阵,但是这会导致255x1向量,而不是255×255个矩阵。有人知道将CSV文件作为矩阵导入Julia中的有效方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-18 08:25:51

m = CSV.read("./file.csv")返回一个DataFrame

如果CSV.jl正确读取文件,使m的所有列都是不包含missings的Float64类型,则可以将m转换为Matrix{Float64}(m)Float64矩阵,或者用一行获得矩阵:

代码语言:javascript
复制
m = Matrix{Float64}(CSV.read("./file.csv", header=0, delim=';'))
# or with piping syntax
m = CSV.read("./file.csv", header=0, delim=';') |> Matrix{Float64}

不过,通常情况下,readdlm应该足够并且是第一个解决方案,可以使用像您这样简单的CSV文件。

票数 4
EN

Stack Overflow用户

发布于 2019-04-17 22:36:32

您可以使用

代码语言:javascript
复制
using DelimitedFiles
m = readdlm("./file.csv", ';', Float64)

(如果需要Float64,可以省略指定类型的最后一个参数)

票数 6
EN

Stack Overflow用户

发布于 2022-05-30 11:00:33

2022答复

不确定是否对CSV.jl进行了更改,但是,如果我执行CSV.read("file.csv"),它将出错

代码语言:javascript
复制
provide a valid sink argument, like 'using DataFrames; CSV.read(source, DataFrame)'

但是,您可以使用以下事实:它需要任何Tables.jl兼容类型:

代码语言:javascript
复制
using CSV, Tables
M = CSV.read("file.csv", Tables.matrix, header=0)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55736755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档