いくつかの値がゼロで、いくつかの値がゼロである2D numpy配列があります。私は、配列内のゼロの最大の塊を見つける効率的な方法を見つけようとしています(中心の位置の大まかなアイディアと同様に、ゼロの数を返すことによって)Python - 2D numpy配列内の特定の値の最大領域を効率的に見つける方法
たとえば、この配列では(3,4)の中心に、9の塊を発見したいと思います:
[[ 1, 1, 1, 0, 0 ],
[ 1, 0, 1, 1, 0 ],
[ 1, 1, 1, 1, 1 ],
[ 1, 1, 0, 0, 0 ],
[ 1, 1, 0, 0, 0 ],
[ 1, 1, 0, 0, 0 ]]
はnumpyのか、scipyのダウンロードにこのような何かを達成するために素敵なベクトル化された方法はありますか?
塊は、おおよそ円形であり、それらには穴がありません。
ndimage.label() scipyからはこれに近いものがありますが、私が後にしているものではありません。 numpy.where()とnumpy.diff()という感じがありますが、この問題を解決するために効率的に使用する方法がわかりません。
穴がある場合はどうなりますか?入力がどのようになっているかを知っているか、穴が空いている塊を除外したいので、穴がないと言っていますか? – user2357112
これは、入力に穴がないことを知っているからです(もしそうなら、非常にまれです) – Brent