Numpy配列からnan値を削除する方法(3つの方法)


次のメソッドを使用して、NumPy 配列から NaN 値を削除できます。

方法 1: isnan() を使用する

 new_data = data[~np. isnan (data)]

方法 2: isfinite() を使用する

 new_data = data[np. isfinite (data)]

方法 3:logical_not() を使用する

 new_data = data[np. logical_not (np. isnan (data))]

これらの各方法は同じ結果を生成しますが、最初の方法は入力が最も短いため、最も頻繁に使用される傾向があります。

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: isnan() を使用して NaN 値を削除する

次のコードは、 isnan()関数を使用して NumPy 配列から NaN 値を削除する方法を示しています。

 import numpy as np

#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])

#define new array of data with nan values removed
new_data = data[~np. isnan (data)]

#view new array
print (new_data)

[4. 6. 10. 11. 14. 19. 22.]

両方の NaN 値が NumPy 配列から正常に削除されたことに注意してください。

このメソッドは、(~)NaN 値ではないすべての配列要素を単純に保持します。

例 2: isfinite() を使用して NaN 値を削除する

次のコードは、 isfinite()関数を使用して NumPy 配列から NaN 値を削除する方法を示しています。

 import numpy as np

#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])

#define new array of data with nan values removed
new_data = data[np. isfinite (data)]

#view new array
print (new_data)

[4. 6. 10. 11. 14. 19. 22.]

両方の NaN 値が NumPy 配列から正常に削除されたことに注意してください。

このメソッドは、単純に有限値であるすべての配列要素を保持します。

NaN 値は有限ではないため、テーブルから削除されます。

例 3:logical_not() を使用して NaN 値を削除する

次のコードは、 logical_not()関数を使用して NumPy 配列から NaN 値を削除する方法を示しています。

 import numpy as np

#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])

#define new array of data with nan values removed
new_data = data[np. logical_not (np. isnan (data))]
#view new array
print (new_data)

[4. 6. 10. 11. 14. 19. 22.]

両方の NaN 値が NumPy 配列から正常に削除されたことに注意してください。

この方法は前の 2 つの方法と同等ですが、より多くの入力が必要となるため、あまり使用されません。

追加リソース

次のチュートリアルでは、Python で他の一般的な操作を実行する方法について説明します。

パンダ: 空の文字列を NaN に置き換える方法
Pandas: NaN 値を文字列に置き換える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です