복붙노트

[PYTHON] NumPy 배열의 요소 색인

PYTHON

NumPy 배열의 요소 색인

파이썬에서는 .index ()를 사용하여 배열에있는 값의 인덱스를 얻을 수 있습니다. NumPy 배열로 어떻게 할 수 있습니까?

내가하려고 할 때

decoding.index(i)

그것은 NumPy 라이브러리가이 기능을 지원하지 않는다고 말합니다. 그것을 할 수있는 방법이 있습니까?

해결법

  1. ==============================

    1.np.where를 사용하여 주어진 조건이 참인 색인을 가져옵니다.

    np.where를 사용하여 주어진 조건이 참인 색인을 가져옵니다.

    예 :

    2D np.ndarray의 경우 :

    i, j = np.where(a == value)
    

    1D 배열의 경우 :

    i, = np.where(a == value)
    

    > =, <=,! = 등의 조건에서 작동합니다 ...

    index () 메서드를 사용하여 np.ndarray의 하위 클래스를 만들 수도 있습니다.

    class myarray(np.ndarray):
        def __new__(cls, *args, **kwargs):
            return np.array(*args, **kwargs).view(myarray)
        def index(self, value):
            return np.where(self == value)
    

    테스트 :

    a = myarray([1,2,3,4,4,4,5,6,4,4,4])
    a.index(4)
    #(array([ 3,  4,  5,  8,  9, 10]),)
    
  2. ==============================

    2.당신은 목록에 numpy 배열을 변환하고 색인을 얻을 수 있습니다.

    당신은 목록에 numpy 배열을 변환하고 색인을 얻을 수 있습니다.

    예를 들면

    tmp = [1,2,3,4,5] #python list
    a = numpy.array(tmp) #numpy array
    i = list(a).index(2) # i will return index of 2, which is 1
    

    나는 니가 원하는거야.

  3. ==============================

    3.나는 NumPy 배열의 인덱스를 구현하는 두 가지 방법 사이에서 찢어진 다 :

    나는 NumPy 배열의 인덱스를 구현하는 두 가지 방법 사이에서 찢어진 다 :

    idx = list(classes).index(var)
    idx = np.where(classes == var)
    

    두 가지 모두 같은 수의 문자를 사용하지만 두 번째 메서드는 nparray 대신 int를 반환합니다.

  4. from https://stackoverflow.com/questions/18079029/index-of-element-in-numpy-array by cc-by-sa and MIT license