前提
以下の画像のelevation内で,正の数で囲まれた領域内にある負の数を検知し,
別配列のcell_classに2という値で記録したいと考えています.
しかし,現時点ではnp.whereを使用し,正の数を0,負の数を-1にする処理しかできていません.
そこで,どのようにして正の数で囲まれた負の数を検知するのかご教授いただければと思います.
実現したいこと
- 正の数で囲まれた領域内にある負の数の検知
- 実際に適用する二次元配列のサイズは1000×1000以上のため,for文の使用をできるだけ避ける
- cell_classで2に該当する領域がどんなサイズであっても検知できるようにする
該当のソースコード
Python
1import numpy as np 2import pandas as pd 3 4elevation = np.array([ 5 [-1, -1, -1, -1, -1], 6 [-1, 10, 10, 10, 10], 7 [-1, 10, -1, 10, 10], 8 [-1, 10, -1, 10, 10], 9 [-1, 10, 10, 10, 10] 10 ]) 11 12cell_class = np.where(elevation >= 0, 0, -1) 13print(cell_class) 14 15#[[-1 -1 -1 -1 -1] 16 #[-1 0 0 0 0] 17 #[-1 0 -1 0 0] 18 #[-1 0 -1 0 0] 19 #[-1 0 0 0 0]]

回答2件
あなたの回答
tips
プレビュー