numpy
他の配列のマスクとして使用する0と1から作成された2D配列があります。プロット上の領域を強調表示するために使用しようとしmatplotlib.contour
ましたが、試行するたびにzero-size array to minimum.reduce without identity
エラーが発生します。何か案が?
このマスクは長方形のセットであるため、手動でエッジを見つけようとしましたが、正しく機能しません。私が使用するコードは次のとおりです。
tmp1,tmp2 = [],[]
for ii in range(len(mask))[1:-2]:
if mask[ii+1] - mask[ii] != 1: tmp1.append(mask[ii])
if mask[ii] - mask[ii-1] != 1: tmp2.append(mask[ii]-1)
rect_limits = []
for ii in range(len(tmp1)):
rect_limits.append([- delta_cont, tmp1[ii], delta_cont, tmp2[ii]])
そのようtmp1
にしtmp2
て、私が探している長方形の最大値と最小値を教えてくれるはずです。(長方形の横方向のエッジは固定されているので、問題ありません)。
次に、使用して、必要なadd_patch
長方形の輪郭を作成する必要があります。
長方形のエッジを見つけるための代替案はありますか?
編集:
OK、私のマスクは次のようになります:
[[0 0 0 0 0 0 0 0 0 0 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0],
[0 0 0 0 0 0 0 0 0 0 0 0],
[0 0 0 0 0 0 0 0 0 0 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0],
[0 0 0 0 0 0 1 1 1 1 0 0]]
そして理想的には、結果として私が望むものは次のようになります。
[[1,3],[6,9]]
つまり、で構築されたアレイ
[[y_start1,y_end1],[y_start2,y_end2],...]