0
私は、1と0で構成される大きな3d numpy配列を持っています。 scipy.ndimage.labelツールを使用して、各サブアレイ(2d)のフィーチャにラベルを付けたいと思います。ラベルscipy.ndimage.labelを持つnumpyの配列
3D-配列のサブセットは、次のようになります。私はこのサブセットの小さな部分にラベルツールを使用すると
subset=np.array([[[1, 0, 0],
[1, 0, 1],
[0, 0, 0]],
[[0, 0, 0],
[1, 0, 1],
[0, 0, 1]],
[[0, 0, 0],
[1, 0, 0],
[0, 1, 1]],
[[0, 0, 0],
[1, 0, 0],
[1, 1, 1]]], dtype=uint8)
作品が修正されます。
>>>label(subset[0:3])
(array([[[1, 0, 0],
[1, 0, 2],
[0, 0, 0]],
[[0, 0, 0],
[1, 0, 2],
[0, 0, 2]],
[[0, 0, 0],
[1, 0, 0],
[0, 2, 2]]]), 2)
しかし、私が使用している場合サブセット全体が正しく機能していません。
>>>label(subset)
(array([[[1, 0, 0],
[1, 0, 1],
[0, 0, 0]],
[[0, 0, 0],
[1, 0, 1],
[0, 0, 1]],
[[0, 0, 0],
[1, 0, 0],
[0, 1, 1]],
[[0, 0, 0],
[1, 0, 0],
[1, 1, 1]]]), 1)
どのような問題が解決できるのでしょうか?
ps。 私がラベルしようとしている完全な配列は、350219個の2次元アレイで構成されています。
私はあなたが 'structure'を指定する必要があると思いますデフォルトで想定されるような3次元配列ではなく、1次元の2次元配列を与えます。 –
[[0,1,0]、 [1,1]]のように2次元構造を定義すると、 [0、1、0]] エラーが発生しました:構造体と入力のランクが同じでなければなりません –
2次元構造体を3dにする必要があります。つまり、1つのディムの長さが1である必要があります。 –