0
ローカルの最大値を検出するためにscipyのmaximum_filterを使用したいが、1つの問題がある。フィルタがすべて等しい値に関数を適用すると、それらはすべてローカル極大値として返されますが、逆の方法でそれらを持つ必要があります。すべての等価値に対する最大フィルタのフィルタリング
スクリプトの例:
import numpy as np
import scipy.ndimage as sc
ones_matrix = np.ones((6,6))
max_arr = (ones_matrix == sc.maximum_filter(ones_matrix, 3, mode = 'constant'))
print max_arr
これは、すべてのTrueを返しますが、私は彼らが偽必要があります。どうやってやるの?前もって感謝します!このいずれかの
max_arr = (ones_matrix == sc.maximum_filter(ones_matrix, 3, mode = 'constant'))
:
[[ True True True True True True]
[ True True True True True True]
[ True True True True True True]
[ True True True True True True]
[ True True True True True True]
[ True True True True True True]]
を何 'max_arr =(ones_matrix = sc.maximum_filter(ones_matrix、3、モードを使用について! = '定数')) '? – BPL
'scipy.ndimage.maximum_filter'を実行するのではなく、行列のすべての値が等しく、したがって' False'を返す場合に特別なケースを追加できますか?私はscipyが "正しい"ことをしていると思う。 – Frangipanes
これはおそらく助けることができますか? http://stackoverflow.com/questions/14859458/how-to-check-if-all-values-in-the-columns-of-a-numpy-matrix-are-the-same – Frangipanes