我想知道如何消除Julia数组(1D)中的任何元素,如下所示.它是通过阅读文本文件而构建的,其中没有相关信息的行与具有相关信息的行混合在一起."没有"是类型Void,我想清理所有的数组.
nothing
nothing
nothing
nothing
nothing
" -16.3651\t 0.1678\t -4.6997\t -14.0152\t -2.6855\t -16.0294\t -7.8049\t -27.1912\t -5.0354\t -14.5187\t\r\n"
" -16.4490\t -1.0910\t -3.6087\t -12.6724\t -1.5945\t -14.7705\t -7.2174\t -25.2609\t -3.7766\t -14.3509\t\r\n"
" -16.4490\t -2.2659\t -2.4338\t -10.9100\t -0.5875\t -13.6795\t -6.7139\t -22.9950\t -2.9373\t -14.0991\t\r\n"
Run Code Online (Sandbox Code Playgroud)
\n
你如何阅读该文件?
\nnothing您可以从数组中过滤掉\'s:
filter(x -> !isnothing(x), [nothing, 42]) # => Any[42]\nRun Code Online (Sandbox Code Playgroud)\n但您可能需要首先使用制表符分隔值 (.tsv) 文件清理数据,如下所示:
\n-16.3651 0.1678 -4.6997 -14.0152 -2.6855 -16.0294 -7.8049 -27.1912 -5.0354 -14.5187\n-16.4490 -1.0910 -3.6087 -12.6724 -1.5945 -14.7705 -7.2174 -25.2609 -3.7766 -14.3509\n-16.4490 -2.2659 -2.4338 -10.9100 -0.5875 -13.6795 -6.7139 -22.9950 -2.9373 -14.0991\nRun Code Online (Sandbox Code Playgroud)\n使用readdlm:
julia> readdlm("data.tsv")\n3x10 Array{Float64,2}:\n -16.3651 0.1678 -4.6997 -14.0152 \xe2\x80\xa6 -27.1912 -5.0354 -14.5187\n -16.449 -1.091 -3.6087 -12.6724 -25.2609 -3.7766 -14.3509\n -16.449 -2.2659 -2.4338 -10.91 -22.995 -2.9373 -14.0991\nRun Code Online (Sandbox Code Playgroud)\n使用DataFrmaes.readtable:
julia> df = readtable("data.tsv");\n\njulia> names!(df, [symbol(x) for x in \'A\':\'J\'])\n2x10 DataFrames.DataFrame\n| Row | A | B | C | D | E | F | G |\n|-----|---------|---------|---------|----------|---------|----------|---------|\n| 1 | -16.449 | -1.091 | -3.6087 | -12.6724 | -1.5945 | -14.7705 | -7.2174 |\n| 2 | -16.449 | -2.2659 | -2.4338 | -10.91 | -0.5875 | -13.6795 | -6.7139 |\n\n| Row | H | I | J |\n|-----|----------|---------|----------|\n| 1 | -25.2609 | -3.7766 | -14.3509 |\n| 2 | -22.995 | -2.9373 | -14.0991 |\nRun Code Online (Sandbox Code Playgroud)\n