我試圖邊緣化一個軸上的數組,並檢查一維峯值是否出現在與原始二維峯值相同的相關索引處。在什麼情況下(x
的形式)下面的斷言是否失敗?numpy array - argmax v argmax的總和的unravel_index
def check(x,axis=None):
import numpy
m = numpy.sum(x, axis=axis)
v,w = numpy.unravel_index(numpy.argmax(x), x.shape)
assert(v==numpy.argmax(m))
return
對於x=numpy.array(range(15)).reshape(5,3)
,check(x,axis=0)
引發錯誤,但check(x,axis=1)
沒有。我看不出爲什麼有人提出AssertionError
- 我是不是很愚蠢?
您是否嘗試打印'v'和numpy.argmax(m)的值?也許實際值會給你一個線索 – Dhara
當axis = None時斷言失敗嗎?這可能是因爲sum函數將數組中的所有值相加,給出m [不是數組]的單個值。這個argmax總是0 – Dhara