R's which() and which.min() Equivalent in Python

Numpy does have built-in functions for it

x = [1,2,3,4,0,1,2,3,4,11] 
x=np.array(x)
np.where(x == 2)
np.min(np.where(x==2))
np.argmin(x)

np.where(x == 2)
Out[9]: (array([1, 6], dtype=int64),)

np.min(np.where(x==2))
Out[10]: 1

np.argmin(x)
Out[11]: 4

A simple loop will do:

res = []
x = [1,2,3,4,0,1,2,3,4,11] 
for i in range(len(x)):
    if check_condition(x[i]):
        res.append(i)

One liner with comprehension:

res = [i for i, v in enumerate(x) if check_condition(v)]

Here you have a live example


The method based on python indexing and numpy, which returns the value of the desired column based on the index of the minimum/maximum value

df.iloc[np.argmin(df['column1'].values)]['column2']

Tags:

Python

R

Numpy