嗨,我有一个2x4数组,叫做mi_respected。我使用argmax找出数组中最大元素的索引。现在我想把这些指数转换成x,y坐标。所以我用了numpy.unravel_指数。我得到这个错误:
Traceback (most recent call last):
File "CAfeb.py", line 273, in <module>
analyzeCA('full', im)
File "CAfeb.py", line 80, in analyzeCA
bg_params = parameterSearch( im, [3, 2], roi, ew, hist_sz, w_data);
File "CAfeb.py", line 185, in parameterSearch
ix = np.unravel_index(max_ix, mi_reshaped.shape)#(mi.size)
File "/usr/lib/pymodules/python2.7/numpy/lib/index_tricks.py", line 64, in unravel_index
if x > _nx.prod(dims)-1 or x < 0:
ValueError: The truth value of an array with more than one element isambiguous.
a.any() or a.all()
mi_reshaped=mi.reshape(2,4)
max_ix = np.argmax(mi_reshaped, axis=1)
ix = np.unravel_index(max_ix, mi_reshaped.shape)#(mi.size)
谢谢你
为此,您应该跳过
axis=1
。如果执行numpy.argmax(array)
,它将在展开数组中查找max,然后可以使用数组形状执行unravel_index
,以查找实际索引。传递轴时,numpy将为数组中的每个条目查找该轴的最大值。例如:如果跳过轴:
现在,你告诉numpy给你维度1上最大值的索引,它找到了带有索引
[3, 3]
的最大值'3'和'7'。但是你的代码不应该有错误,只是错误的最终结果。np.unravel_index
需要一个整数作为其第一个参数。max_ix
是一个数组。此外,
max_ix
中的每个值是关于mi
的第二轴(axis = 1
)的索引。请改为:
例如
相关问题 更多 >
编程相关推荐