問題タブ [masked-array]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 3 つのマスクされた配列から 2D イメージ配列を作成するにはどうすればよいですか?
そのため、2次元配列として保存された画像の平均ピクセル値から画像を作成しようとしています。ダーク フレームの場合、これはかなり簡単でした。移動平均を作成するだけで済みました。RGBマスクを使用して画像を分離する必要があるため、露出時間の場合はもう少し複雑です。これらのマスクを組み合わせて首尾一貫したイメージに戻すのに問題があります。平均値配列を作成するコードは次のとおりです。
np.concatenate
元の画像サイズ (2464, 3280) ではなく、配列の形状が (7392, 3280) であるため、機能しません。zip
zip オブジェクトを返すため機能しませんでした。後でこれをプロットする必要があります。
編集:
明確にするために、マスクされた配列は元の配列と同じ形状であり、正しい色ではないピクセルの実際の数値の代わりに空白の値 (--、dtype では不明) があります。私がする必要があるのは、実際の RGGB イメージを作成するために空の値を他のマスクされた配列の値に置き換えながら、それらを結合する方法を理解することです。
python - numpy のマスクされた配列を操作すると、無効な値がマスクされます
numpy 配列に対する numpy 操作のマスクされた配列に関するドキュメントから:
numpy.ma モジュールには、ほとんどの ufunc の特定の実装が付属しています。有効領域を持つ単項関数と 2 項関数 (対数や除算など) は、入力がマスクされているか有効領域外にある場合は常に、マスクされた定数を返します。例:
私の計算では、これらの無効な操作がどこで生成されたかを知る必要があるという問題があります。具体的には、代わりにこれが欲しいです:
この質問が会話になるリスクがあるので、私の主な質問は次のとおりです。
計算された無効な値 ( np.nan や np.inf などmasked_array
によって「修正」されたもの) がマスクされた値に変換されない (および混同されない) 場合、これを取得するための良い解決策は何ですか?fix_invalid
私の現在の解決策は、関数を計算してからmasked_array.data
、マスクされた配列を元のマスクで再構築することです。ただし、ユーザーからの任意の関数を多くの異なる配列にマップするアプリケーションを作成しており、マスクされているものとされていないものがあります。マスクされた配列専用の特別なハンドラーを避けたいと考えています。さらに、これらの配列には、重要な MISSING、NaN、および Inf の区別があるため、値np.nan
の代わりに s を持つ配列を使用することはできません。masked
さらに、この動作が存在する理由について何らかの見通しがある場合は、知りたいです。マスクされていない値に対する操作の結果の有効性は実際にはユーザーの責任であり、ユーザーは関数を使用して「クリーンアップ」を選択できるため、同じ操作でこれを行うのは奇妙に思えfix_invalid
ます。
さらに、誰かが numpy の欠損値の進行状況について何かを知っている場合は、共有してください。
編集: 2017-10-30
hpauljの答えに追加するには; 変更されたドメインを使用したログ関数の定義は、numpy 名前空間でのログの動作に副作用があります。
np.log
は と同じ動作をするようになりましmylog
たnp.ma.log
が、変更はありません。
これを回避する方法はありますか?
使用Python 3.6.2 :: Anaconda custom (64-bit)
してnumpy1.12.1