[解決済み] ある値より小さい行列の値をすべて数える
2023-04-13 05:53:27
質問
行列(2次元配列)の中で、200未満の値をすべて数えなければならない。
このために書き下ろしたコードは
za=0
p31 = numpy.asarray(o31)
for i in range(o31.size[0]):
for j in range(o32.size[1]):
if p31[i,j]<200:
za=za+1
print za
o31
は画像で、それを行列に変換して値を求めています。
もっと簡単な方法はないでしょうか?
どのように解決するのですか?
この
numpy.where
関数はあなたの友人です。これは配列データ型をフルに活用するように実装されているため、大きな画像では、あなたが提供する純粋な Python ソリューションよりも速度が向上していることに気づくはずです。
numpy.whereを直接使用すると、特定の値が条件に一致するかどうかを示すブール値のマスクが得られます。
>>> data
array([[1, 8],
[3, 4]])
>>> numpy.where( data > 3 )
(array([0, 1]), array([1, 1]))
そして、このマスクは実際の値を得るために直接配列にインデックスを付けるために使用することができます。
>>> data[ numpy.where( data > 3 ) ]
array([8, 4])
ここから先は、どのような形式で結果を得たいかによります。
関連
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 整数の配列を正しくソートする方法
-
[解決済み] 配列中の一意でない値(重複している/複数回出現している)をすべて取得する
-
[解決済み】pandasでカラムの種類を変更する
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
最新
-
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のマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] virtualenvsはどこに作成するのですか?