반응형

Numpy Sum 함수

말 그대로 각각의 값들을 더하는 함수입니다.

x = np.array([[1,2], [3,4]])
print(x, end='\n\n')
print(np.sum(x), end='\n\n')
# axis = 0 열 기준으로 계산 // axis = 1 행 기준으로 계산
print(np.sum(x, axis = 0), end='\n\n') # 1 + 3 = 4 , 2 + 4 = 6 
print(np.sum(x, axis = 1), end='\n\n')
print(np.cumsum(x), end='\n\n')


# 출력 결과

[[1 2]
 [3 4]]

10

[4 6]

[3 7]

[ 1  3  6 10]

 

해당 소스코드에서 SUM 함수는 각각의 행과 열에 있는 값들을 다 더한 것을 확인하실 수 있습니다.

행과 열을 각각 따로 더하고 싶다면 뒤에 axis 조건을 주어 0인 경우 열을 기준으로 더하고 1인 경우 행을 기준으로 더합니다.

 

Numpy 집합

각각의 집합관련 함수는 다음과 같습니다.

unique(x) : 배열 값들 중 중복된 원소 제거하고, 유일한 원소를 반환

intersect1d(x, y) : 두 배열 x, y 의 교집합을 반환

union1d(x, y) : 두 배열 x, y의 합집합을 반환

setdiff1d(x, y) : x 배열 로 부터 배열 y를 뺀 차집합을 반환

setxor1d(x, y) : x, y 배열의 합집합에서 교집합을 뺀 대칭차집합을 반환

 

x = np.array(['a','b','a','c'])
y = np.array(['a','d','e'])

# unique
print('unique', ' ',np.unique(x), end='\n\n') # 중복되는 값은 1개만 출력

# 차집합
print('setdiff1d ', np.setdiff1d(x,y), end='\n\n')

print(set(x), end='\n\n') # 

# 교집합 합집합
# 교집합 , 중복되는 값만 출력 assume_unique 작성시 중복가능
print('intersect1d ' , ' ', np.intersect1d(x, y, assume_unique=True), end='\n\n')
# 합집함 , 중복을 허용하지 않고 5개의 값 다 출력
print('union1d ' , ' ' , np.union1d(x, y), end='\n\n') 



# 출력 결과

unique   ['a' 'b' 'c']

setdiff1d  ['b' 'c']

{'b', 'c', 'a'}

intersect1d    ['a' 'a']

union1d    ['a' 'b' 'c' 'd' 'e']

 

 

* arange함수와 reshape 함수

 

arange 함수는 range는 리스트로 반환합니다. arange 함수는 range 함수와 사용하는 방법은 동일하나 리턴을 배열로합니다.

 

reshape 함수는 예를 들어 1차원 배열로 출력한 것을 reshape 함수를 통해 2차원 배열로 변경하는데 사용되곤 합니다.

 

aa = np.arange(12) # 1차원 배열
bb = aa.reshape(3,4) # 1차원 배열인 a를 2차원 배열로 변경
print(aa, end='\n\n') # 1차원 배열
print(bb, end='\n\n')

# 출력 결과

[ 0  1  2  3  4  5  6  7  8  9 10 11]

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
반응형

+ Recent posts