首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PYTHON -在NdArray中计算Min和Min索引

PYTHON -在NdArray中计算Min和Min索引
EN

Stack Overflow用户
提问于 2017-10-12 06:14:03
回答 1查看 48关注 0票数 1

我有一个n*n数组,我希望在数组中找到min,并以[x,y]格式获取min的索引。

当然,这可以使用for循环和临时变量来完成,但是我正在寻找一个更复杂的过程来完成这个任务。

例子-

代码语言:javascript
复制
    [[1,2,8],
     [7,4,2],
     [9,1,7],
     [0,1,5],
     [6,-4,3]]

我应该得到以下输出-

代码语言:javascript
复制
    Output-
    Min = -4
    Index = [4,1]

我能实现类似的东西吗?

蒂娅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-12 06:18:27

全局最小值与指数

夷平数组,获取argmin索引。使用np.unravel_index从其中获取相应的行类索引。此外,索引使用先前获得的最小值的扁平argmin索引到扁平数组中。

代码语言:javascript
复制
def smallest_val_index(a):
    idx = a.ravel().argmin()
    return a.ravel()[idx], np.unravel_index(idx, a.shape)

样本运行-

代码语言:javascript
复制
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 -

代码语言:javascript
复制
def largest_val_index(a):
    idx = a.ravel().argmax()
    return a.ravel()[idx], np.unravel_index(idx, a.shape)

样本运行-

代码语言:javascript
复制
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))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46702631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档