Numpy : 교차점 계산을 위해 인덱스의 2D 배열을 1D 배열로 변환

크리스

파이썬에서 두 이진 이미지 배열의 교차를 수행해야하는 상황이 있습니다. 이상적으로는이 작업을 매우 빠르게 수행합니다.


Numpy에는 intersect1d좌표를 단일 요소로 바꿀 수 있다면 작업을 수행 하는 기능이 있습니다.

지금 (내 사진의 크기를 알고 있기 때문에) 곱하기, 합계, 교차를 사용하여 모든 것을 정수 형식으로 변환 한 다음 비슷한 수단을 사용하여 압축을 푸는 방법을 사용합니다.

def npimg_intersection(A,B):
    Aargwhere = np.argwhere(A==0)
    Bargwhere = np.argwhere(B==0)

    Aargwhere[:,0] = Aargwhere[:,0]*1000
    Aargwhere = np.sum(Aargwhere,axis=1)

    Bargwhere[:,0] = Bargwhere[:,0]*1000
    Bargwhere = np.sum(Bargwhere,axis=1)

    Iargwhere0 = np.intersect1d(Aargwhere,Bargwhere)

    Iargwhere = np.zeros(shape=(Iargwhere0.shape[0],2),dtype=Iargwhere0.dtype)
    Iargwhere[:,0] = Iargwhere0[:]/1000
    Iargwhere[:,1] = Iargwhere0[:]%1000


    I = np.zeros(shape = A.shape,dtype=A.dtype)
    I[:,:] = 255
    I[Iargwhere[:,0],Iargwhere[:,1]] = 0
    return I

그리고 작동합니다. 상당히 빨리.


그러나 numpy를 사용하여 이것을 수행하는 올바른 (덜 해킹 같은) 방법은 무엇입니까?

디바 카르

두 가지 접근 방식을 제안 할 수 있습니다.

255*(~((A==0) & (B==0))).astype(A.dtype)
255*(((A!=0) | (B!=0))).astype(A.dtype)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

점의 2D 배열을 1D 배열로 변환

분류에서Dev

목록의 1D 배열을 2D 배열로 변환

분류에서Dev

1D strings 배열을 2D float 배열로 변환

분류에서Dev

2D 배열을 1D 배열 오류로 변환

분류에서Dev

Python의 변수를 기반으로 n 차원 numpy 배열을 2D 배열로 변환

분류에서Dev

Numpy의 "shape"함수는 2D 배열에 대해 1D 값을 반환합니다.

분류에서Dev

2D numpy 행렬을 2D numpy 배열로 변환

분류에서Dev

numpy 행렬을 1D numpy 배열로 변환

분류에서Dev

3d numpy 배열을 2d 배열로 1 열 pandas df로 변환

분류에서Dev

인덱스 배열로 2d numpy 배열의 행을 얻는 방법

분류에서Dev

2D 배열을 형성하기 위해 0으로 1D NumPy 배열 채우기

분류에서Dev

3D numpy 배열을 3 개의 인덱스 목록으로 변환

분류에서Dev

배열의 배열을 1D로 Numpy 재구성

분류에서Dev

자바 스크립트 : 1D 배열을 주어진 크기로 2D 배열로 변환

분류에서Dev

Numpy에서 2D 또는 1D 마스크 배열을 1D 배열로 인덱싱하는 유효한 일반 코드

분류에서Dev

2D 배열을 동일한 크기의 배열로 변환하지만 1D 모양?

분류에서Dev

Numpy는 무작위 2D 또는 1D 배열에서 최소 최대 값을 계산합니다.

분류에서Dev

JAVA에서 1D 배열을 2D 배열로 변환

분류에서Dev

객체 dtype이있는 Numpy 2D 배열을 부동 소수점의 일반 2D 배열로 변환하는 방법

분류에서Dev

2d 배열을 1d로 인덱싱

분류에서Dev

다차원 Numpy 배열을 1D Numpy 배열과 연결

분류에서Dev

인덱스의 2D numpy 배열을 기반으로 numpy 2D 배열을 배열하는 numpy 방법은 무엇입니까?

분류에서Dev

Numpy에서 1D 배열을 행 또는 열 벡터로 변환

분류에서Dev

3D numpy 배열을 1D numpy 배열로 효율적으로 변환

분류에서Dev

배열의 1d 차이 계산

분류에서Dev

2D 배열을 행당 고유 값의 2D 배열로 변환

분류에서Dev

Python : 2D numpy 배열을 pandas 시리즈로 변환

분류에서Dev

Python : 2D numpy 배열을 사전으로 변환

분류에서Dev

자바 | println을 위해 2D int 배열을 2D char 배열로 변환

Related 관련 기사

  1. 1

    점의 2D 배열을 1D 배열로 변환

  2. 2

    목록의 1D 배열을 2D 배열로 변환

  3. 3

    1D strings 배열을 2D float 배열로 변환

  4. 4

    2D 배열을 1D 배열 오류로 변환

  5. 5

    Python의 변수를 기반으로 n 차원 numpy 배열을 2D 배열로 변환

  6. 6

    Numpy의 "shape"함수는 2D 배열에 대해 1D 값을 반환합니다.

  7. 7

    2D numpy 행렬을 2D numpy 배열로 변환

  8. 8

    numpy 행렬을 1D numpy 배열로 변환

  9. 9

    3d numpy 배열을 2d 배열로 1 열 pandas df로 변환

  10. 10

    인덱스 배열로 2d numpy 배열의 행을 얻는 방법

  11. 11

    2D 배열을 형성하기 위해 0으로 1D NumPy 배열 채우기

  12. 12

    3D numpy 배열을 3 개의 인덱스 목록으로 변환

  13. 13

    배열의 배열을 1D로 Numpy 재구성

  14. 14

    자바 스크립트 : 1D 배열을 주어진 크기로 2D 배열로 변환

  15. 15

    Numpy에서 2D 또는 1D 마스크 배열을 1D 배열로 인덱싱하는 유효한 일반 코드

  16. 16

    2D 배열을 동일한 크기의 배열로 변환하지만 1D 모양?

  17. 17

    Numpy는 무작위 2D 또는 1D 배열에서 최소 최대 값을 계산합니다.

  18. 18

    JAVA에서 1D 배열을 2D 배열로 변환

  19. 19

    객체 dtype이있는 Numpy 2D 배열을 부동 소수점의 일반 2D 배열로 변환하는 방법

  20. 20

    2d 배열을 1d로 인덱싱

  21. 21

    다차원 Numpy 배열을 1D Numpy 배열과 연결

  22. 22

    인덱스의 2D numpy 배열을 기반으로 numpy 2D 배열을 배열하는 numpy 방법은 무엇입니까?

  23. 23

    Numpy에서 1D 배열을 행 또는 열 벡터로 변환

  24. 24

    3D numpy 배열을 1D numpy 배열로 효율적으로 변환

  25. 25

    배열의 1d 차이 계산

  26. 26

    2D 배열을 행당 고유 값의 2D 배열로 변환

  27. 27

    Python : 2D numpy 배열을 pandas 시리즈로 변환

  28. 28

    Python : 2D numpy 배열을 사전으로 변환

  29. 29

    자바 | println을 위해 2D int 배열을 2D char 배열로 변환

뜨겁다태그

보관