2017-01-10 7 views
2

Remove NaN row from X array and also the corresponding row in Yの最初の答えをPythonからJulia 0.5.0にnumpyをインポートせずに翻訳しようとしています。私は「NaNを取り除く」の部分を複製することができます。Juliaの多次元配列からNaNを含む行全体を削除しますか?

x1 = x[!isnan(x)] 

だけそれは1Dまでの2D配列を低減し使用して、と私はそれを望んでいません。この場合、ジュリアはnumpy.anyに相当しますか?同等のものがない場合、配列を2次元に保ち、NaNを含む行全体を削除するにはどうすればよいですか?

答えて

1

あなたはanyとNaNのエントリを含む行を見つけることができます。

julia> A = rand(5, 4) 
     A[rand(1:end, 4)] = NaN 
     A 
5×4 Array{Float64,2}: 
    0.951717 0.0248771 0.903009 0.529702 
    0.702505 NaN   0.730396 0.785191 
NaN   0.390453 0.838332 NaN 
    0.213665 NaN   0.178303 0.0100249 
    0.124465 0.363872 0.434887 0.305722 

julia> nanrows = any(isnan(A), 2) # 2 means that we reduce over the second dimension 
5×1 Array{Bool,2}: 
false 
    true 
    true 
    true 
false 

次にあなたが最初の次元にマスクとして返さ論理配列を使用することができますが、我々はそれが一次元の最初にする必要があります。

julia> A[!vec(nanrows), :] 
2×4 Array{Float64,2}: 
0.951717 0.0248771 0.903009 0.529702 
0.124465 0.363872 0.434887 0.305722 
関連する問題