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 で他の一般的な操作を実行する方法について説明します。