我想导入一个CSV文件(file.csv
)作为Julia中的矩阵,使用GR将其绘制为热图。我的CSV文件包含255行,每行255个条目。下面是CSV文件中的一些条目,以说明行的格式:
file.csv
-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")
行将文件导入为矩阵,但这会导致255 x 1向量而不是255 x 255矩阵。有人知道在Julia中将CSV文件导入为矩阵的有效方法吗?
4条答案
按热度按时间o3imoua41#
你可以用
(last如果需要
Float64
,则可以省略指定类型的参数)zdwk9cvp2#
m = CSV.read("./file.csv")
返回DataFrame
。如果
CSV.jl
正确读取文件,使得m
的所有列都是Float64
类型,不包含missing
s,那么你可以用Matrix{Float64}(m)
将m
转换为Float64
矩阵,或者用一行来获得矩阵:不过,
readdlm
通常应该足够了,并且是像您这样简单的CSV文件的第一个解决方案。kmb7vmvb3#
2022答案
不确定
CSV.jl
是否有更改,但是,如果我执行CSV.read("file.csv")
,它将出错但是,您可以使用它需要任何
Tables.jl
兼容类型的事实:u3r8eeie4#
虽然@user:1269567给出的
readdlm
答案简单明了,但它可能会遇到非常大的文本文件(无论如何,将大型数字数据存储为文本可能是一个坏主意,但这是另一个故事)-这就是我遇到这个问题的原因。除了CSV.jl
之外,不使用其他包的有效方法如下:从
CSV v0.10.9
开始,假设文件中没有头。