gpt4 book ai didi

PYTHON - 计算 NdArray 中的最小值和最小值索引

转载 作者:行者123 更新时间:2023-12-01 02:32:01 26 4
gpt4 key购买 nike

我有一个n*n数组,我想在数组中找到min,并获取min的索引采用[x,y]格式

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

示例 -

    [[1,2,8],
[7,4,2],
[9,1,7],
[0,1,5],
[6,-4,3]]

我应该得到以下输出 -

    Output-
Min = -4
Index = [4,1]

我可以实现类似的东西吗?

TIA。

最佳答案

全局最小值和指数

展平数组,获取argmin索引。使用 np.unravel_index 从中获取相应的 row-col 索引。此外,使用之前获得的最小值的展平 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)
<小时/>

全局最大值和指数

类似地,要获取全局最大值值,请使用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))

关于PYTHON - 计算 NdArray 中的最小值和最小值索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46702631/

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