본문 바로가기
프로그램

[파이썬] 문제 : numpy 배열 a, b 빼기(setdiff1d)

by 오디세이99 2022. 11. 30.
728x90
반응형

 

(1) for문과 apped() 사용

import numpy as np

a = np.array([0, 10, 20, 40, 60, 80])      # a 배열
b = np.array([0, 20])                      # b 배열

c = []
for i in range(len(a)):                   # a 배열의 요소수 만큼 반복
    flag = False                          # a, b에 같은 요수가 있으면 True 가 됨
    for j in range(len(b)):               # b 요소수 만큼 반복
        if a[i] == b[j]:                  # a, b 요소가 같으면
            flag = True                   # 빼야할 요소
            break
    if flag == False:                    # a, b 요소가 같은게 없으면
        c.append(a[i])                    # append 추가
print(c)

결과

[10, 40, 60, 80]

 

(2) setdiff1d(a, b) 함수 사용

import numpy as np

a = np.array([0, 10, 20, 40, 60, 80])
b = np.array([0, 20])

print(np.setdiff1d(a, b))

결과

[10 40 60 80]

 

 

* 배열 만드는 코드 참조. (결과는 수정 필요)

import numpy as np

a = np.array([], dtype='int32')  # numpy 배열 선언
b = np.array([], dtype='int32')
for i in range(9):               # for 반복
    if i%2 == 0 or i == 1:      # a 배열을 만들기 위해 짝수일때와 1일때 추가
        a = np.append(a, [i*10]) # *10해서 배열값을 만듬
    if i == 0 or i == 1:         # b 배열을 만들기
        b = np.append(b, [i*10])

result = np.setdiff1d(a, b)       # a - b 계산. setdiff1d 함수 사용
print(result)                     # 결과 출력

결과

[20 40 60 80]
728x90
반응형

댓글