あるパターンを含む2dバイナリnumpy
arrays
のサイズが変化します。ただ、このような :numpyの配列内の等しい隣接するセルの数を計算する
import numpy
a = numpy.zeros((6,6), dtype=numpy.int)
a[1,2] = a[1,3] = 1
a[4,4] = a[5,4] = a[4,3] = 1
ここ
「画像」は、2つのパッチ2と1と3個の接続細胞と1が含まれています。
print a
array([[0, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 1, 0],
[0, 0, 0, 0, 1, 0]])
は、私は(右、下の各セルの上、隣人ルークの場合として定義され、その左にある細胞)非ゼロのセルは、別の非ゼロのセルに隣接する頻度を知りたいです擬似複製を含む(その逆も同様)。
内境界の前のapproachは、外側境界を計算するために意図したとおり、間違った値(5)を返します。
numpy.abs(numpy.diff(a, axis=1)).sum()
そこで上記試験配列のため、正しい合計結果は、(上部パッチは、2つの内部境界は、4つの下部を有する)あろう。
すべてのヒントに感謝します!
EDIT:
間違い:下部は明らか
もう少し
"ルークの場合のように定義された隣人が" どういう意味:ここで
編集
は4連結近傍のコードですか? – user2357112
なぜ6は低いのですか? – HYRY
まあ明白な解決策は、インデックスとカウントを二重ループすることです。 –