我有一个firebase.firestore().DocumentReference
数组,我希望在数组中找到n*n
,并以min
格式获取min
的索引
当然,这可以使用[x,y]
循环并使用临时变量来完成,但我正在寻找一个更复杂的过程来执行此操作。
示例 -
for
我应该得到以下输出 -
[[1,2,8],
[7,4,2],
[9,1,7],
[0,1,5],
[6,-4,3]]
我可以实现类似的东西吗?
TIA。
答案 0 :(得分:2)
全球最低值和指数
展平数组,获取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))