Python equivalent of which() in R

前端 未结 3 913
清歌不尽
清歌不尽 2020-12-28 15:33

I am trying to take the following R statement and convert it to Python using NumPy:

1 + apply(tmp,1,function(x) length(which(x[1:k] < x[k+1])))

相关标签:
3条回答
  • 2020-12-28 15:39

    The Python code below answers my question:

    np.array([1 + np.sum(row[range(k)] < row[k]) for row in tmp])
    

    Here tmp is a 2d array, and k is a variable which was set for column comparison.

    Thanks to https://stackoverflow.com/users/601095/doboy for inspiring me with the answer!

    0 讨论(0)
  • 2020-12-28 15:50

    From http://effbot.org/zone/python-list.htm:

    To get the index for all matching items, you can use a loop, and pass in a start index:

    i = -1
    try:
        while 1:
            i = L.index(value, i+1)
            print "match at", i
    except ValueError:
        pass
    
    0 讨论(0)
  • 2020-12-28 16:01
        >>> which = lambda lst:list(np.where(lst)[0])
    
        Example:
        >>> lst = map(lambda x:x<5, range(10))
        >>> lst
        [True, True, True, True, True, False, False, False, False, False]
        >>> which(lst)
        [0, 1, 2, 3, 4]
    
    0 讨论(0)
提交回复
热议问题