numpy.argmax
的文档声明它返回数组中找到的最大值的索引位置,并通过返回ndarray
int
的{{1}}形状与输入数组:
numpy.argmax(a, axis=None, out=None)[source]
Returns the indices of the maximum values along an axis.
Parameters:
a : array_like
Input array.
axis : int, optional
By default, the index is into the flattened array, otherwise along the specified axis.
out : array, optional
If provided, the result will be inserted into this array. It should be of the appropriate shape and dtype.
Returns:
index_array : ndarray of ints
Array of indices into the array. It has the same shape as a.shape with the dimension along axis removed.
为什么命令会返回一个2-dim数组int
?
a = np.arange(6).reshape(2,3)
print np.argmax(a)
5
在我看来,reshape充当新视图,argmax命令仍然使用底层的1-dim数组。我尝试将数组复制到具有相同最终结果的初始化2-dim数组中。
这是Python 2.7.12,但由于他们在文档中有它,我相信这是预期的行为。我错过了什么吗?我怎样才能让ndarray返回?
答案 0 :(得分:0)
从您引用的文档中:
默认情况下,索引进入展平数组
它提供a.flat[np.argmax(a)] == np.max(a)
的整数。如果要将其转换为索引元组,可以使用&#34中链接的np.unravel_index
函数;另请参阅"部分。
关于"与 a.shape 形状相同的部分,其中轴的尺寸已移除"如果您实际提供axis
参数,则适用。另外,请注意"并删除轴的尺寸"部分;即使您指定axis
,它也不会像您期望的那样返回与输入相同形状的数组。