gpt4 book ai didi

python - numpy 数组 - unravel_index of argmax v. argmax of sum

转载 作者:行者123 更新时间:2023-12-01 05:56:43 25 4
gpt4 key购买 nike

我试图沿一个轴边缘化数组,并检查一维峰值是否出现在与原始二维峰值相同的相关索引处。在什么情况下(x 的形式)以下断言会失败?

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,w=numpy.unravel_index(numpy.argmax(x),x.shape)
assert(v==numpy.argmax(m))

你可能想要

vw = numpy.unravel_index(numpy.argmax(x),x.shape)
assert vw[1 - axis] == numpy.argmax(m)

或者也许

v,w=numpy.unravel_index(numpy.argmax(x),x.shape)
assert (v if axis == 1 else w) == numpy.argmax(m)

关于python - numpy 数组 - unravel_index of argmax v. argmax of sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com