我试图边缘化一个轴上的数组,并检查一维峰值是否出现在与原始二维峰值相同的相关索引处。在什么情况下(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