PYTHON - 计算 NdArray 中的最小值和最小值的索引
PYTHON - Calculate Min and Index of Min in an NdArray
我有一个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]
我可以实现类似的东西吗?
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)
全局最大值和指数
同样,要获取全局 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))
我有一个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]
我可以实现类似的东西吗?
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)
全局最大值和指数
同样,要获取全局 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))