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

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]: 1np.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


NumPy for R provides you with a bunch of R functionalities in Python.

As to your specific question:

import numpy as npx = [1,2,3,4,0,1,2,3,4,11] arr = np.array(x)print(arr)# [ 1  2  3  4  0  1  2  3  4 11]print(arr.argmin(0)) # R's which.min()# 4print((arr==2).nonzero()) # R's which()# (array([1, 6]),)