[解決済み] Pythonでnumpyのndarrayの非NaN要素の数をカウントする
2022-10-05 22:47:10
質問
私はnumpy ndarray行列の非NaN要素の数を計算する必要があります。どのようにPythonでこれを効率的に行うのでしょうか?これを達成するための私の簡単なコードは次のとおりです。
import numpy as np
def numberOfNonNans(data):
count = 0
for i in data:
if not np.isnan(i):
count += 1
return count
numpyにこのための組み込み関数はないのでしょうか?ビッグデータ解析をしているので、効率は重要です。
よろしくお願いします。
どのように解決するのですか?
np.count_nonzero(~np.isnan(data))
~
から返されるブーリアン行列を反転します。
np.isnan
.
np.count_nonzero
は0でない値をカウントします。
.sum
は同じ結果を与えるはずです。しかし、多分より明確に
count_nonzero
テストの速さ。
In [23]: data = np.random.random((10000,10000))
In [24]: data[[np.random.random_integers(0,10000, 100)],:][:, [np.random.random_integers(0,99, 100)]] = np.nan
In [25]: %timeit data.size - np.count_nonzero(np.isnan(data))
1 loops, best of 3: 309 ms per loop
In [26]: %timeit np.count_nonzero(~np.isnan(data))
1 loops, best of 3: 345 ms per loop
In [27]: %timeit data.size - np.isnan(data).sum()
1 loops, best of 3: 339 ms per loop
data.size - np.count_nonzero(np.isnan(data))
がかろうじて最速のようです。他のデータでは、異なる相対速度の結果が得られるかもしれません。
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Python 3 の "python -m SimpleHTTPServer" に相当するものは何ですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] 億の相対的輸入
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] NumPyでユークリッド距離はどのように計算できますか?
-
[解決済み】NumPyのbool配列でtrueの要素の数を数える方法
-
[解決済み] サブフォルダからのインポートモジュール
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Pythonのチルダ演算子について
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。