2016-12-05 63 views
0

在应用函数之后是否有计算数组的最小索引值的方法(即相当于matlab查找)?具有函数arg的Numpy最小值

换句话说考虑是这样的:

a = [1,-3,-10,3] 

np.find_max(a,lambda x:abs(x)) 

应该返回。

我可以为此写一个循环,但我认为如果存在的话,使用内置的numpy函数会更快。

+1

只需使用NumPy的funcs中'np.argmax(np.abs(一))'? – Divakar

回答

1

使用argmax,根据文档:

numpy.argmax(一,轴=无,OUT =无)

返回 最大值的索引沿轴线。

参数:a:array_like输入数组。 axis:int,可选通过 默认情况下,索引是放入扁平数组中,否则沿 指定的轴。 out:array,可选如果提供,则结果将插入到此数组中 。它应该是适当的形状和dtype。返回:index_array:ints的ndarray数组索引到 。它具有与形状相同的形状,其中尺寸沿着轴移除。另见ndarray.argmax,argmin

amax沿给定轴的最大值。 unravel_index将一个 平面索引转换为一个索引元组。备注

如果出现多次最大值,则返回与第一次出现相对应的索引 。

import numpy as np 

a = [1, -3, -10, 3] 
print(np.argmax(np.abs(a))) 

输出:

2 
相关问题