我有一个n*n数组,我希望在数组中找到min,并以[x,y]格式获取min的索引。
当然,这可以使用for循环和临时变量来完成,但是我正在寻找一个更复杂的过程来完成这个任务。
例子-
[[1,2,8],
[7,4,2],
[9,1,7],
[0,1,5],
[6,-4,3]]我应该得到以下输出-
Output-
Min = -4
Index = [4,1]我能实现类似的东西吗?
蒂娅。
发布于 2017-10-12 06:18:27
全局最小值与指数
夷平数组,获取argmin索引。使用np.unravel_index从其中获取相应的行类索引。此外,索引使用先前获得的最小值的扁平argmin索引到扁平数组中。
def smallest_val_index(a):
idx = a.ravel().argmin()
return a.ravel()[idx], np.unravel_index(idx, a.shape)样本运行-
In [182]: a
Out[182]:
array([[ 1, 2, 8],
[ 7, 4, 2],
[ 9, 1, 7],
[ 0, 1, 5],
[ 6, -4, 3]])
In [183]: val, indx = smallest_val_index(a)
In [184]: val
Out[184]: -4
In [185]: indx
Out[185]: (4, 1)全局最大值和指数
类似地,要获得全局maximum值,请使用argmax -
def largest_val_index(a):
idx = a.ravel().argmax()
return a.ravel()[idx], np.unravel_index(idx, a.shape)样本运行-
In [187]: a
Out[187]:
array([[ 1, 2, 8],
[ 7, 4, 2],
[ 9, 1, 7],
[ 0, 1, 5],
[ 6, -4, 3]])
In [188]: largest_val_index(a)
Out[188]: (9, (2, 0))https://stackoverflow.com/questions/46702631
复制相似问题