用DataFrame导出CSV文件出错,请老哥看看哪错了。

我有个2361*30003的数组xyz,想导出为CSV文件,就按下面这样写了,之前是能正常运行的,但是最近用了JuliaPro不知道为啥就出错了

CSV.write("E:/test.csv", DataFrame(xyz))

BoundsError: attempt to access 4194304-element Array{UInt8,1} at index [1:4194305]
throw_boundserror(::Array{UInt8,1}, ::Tuple{UnitRange{Int64}}) at abstractarray.jl:484
checkbounds at abstractarray.jl:449 [inlined]
view at subarray.jl:147 [inlined]
writecell(::Array{UInt8,1}, ::Int64, ::Int64, ::IOStream, ::Int64, ::CSV.Options{UInt8,UInt8,Nothing,Tuple{}}) at write.jl:148
macro expansion at write.jl:183 [inlined]
eachcolumn at utils.jl:49 [inlined]
writerow(::Array{UInt8,1}, ::Base.RefValue{Int64}, ::Int64, ::IOStream, ::Tables.Schema{(:x1, :x2, :x3, :x4, :x5, :x6, :x7, :x8, :x9, :x10, :x11, :x12, :x13, :x14, :x15, :x16, :x17, :x18, :x19, :x20, :x21, :x22, :x23, :x24, :x25, :x26, :x27, :x28, :x29, :x30, :x31, :x32, :x33, :x34, :x35, :x36, :x37, :x38, :x39, :x40, :x41, :x42, :x43, :x44, :x45, :x46, :x47, :x48, :x49, :x50, :x51, :x52, :x53, :x54, :x55, :x56, :x57, :x58, :x59, :x60, :x61, :x62, :x63, :x64, :x65, :x66, :x67, :x68, :x69, :x70, :x71, :x72, :x73, :x74, :x75, :x76, :x77, :x78, :x79, ...
    Status `C:\Users\xxx\.juliapro\JuliaPro_v1.0.5-2\environments\v1.0\Project.toml`
  [537997a7] AbstractPlotting v0.9.10
  [c52e3926] Atom v0.11.2
  [336ed68f] CSV v0.5.18
  [aaaa29a8] Clustering v0.13.3
  [5ae59095] Colors v0.9.6
  [a93c6f00] DataFrames v0.20.0
  [7073ff75] IJulia v1.20.0
  [e5e0dc1b] Juno v0.7.2
  [b964fa9f] LaTeXStrings v1.0.3
  [ee78f7c6] Makie v0.9.5
  [91a5bcdd] Plots v0.28.2
  [10745b16] Statistics

看起来像是数组下标溢出。

但一般不至于,你生成随机数数组,在保存会报错吗?

能弄个最小可复现案例代码就好一点。

我试了下用随机生成的数组,出现了一样的错误,

CSV.write("E:/test2.csv", DataFrame(rand(Int16, 2361, 30003)))

如果纯1数组的话是能正常保存的

CSV.write("E:/test2.csv", DataFrame(ones(Int16, 2361, 30003)))