Programming/Python

Python Numpy 6강 - BroadCasting

상맹 2021. 10. 20. 20:17
반응형

BroadCasting

- 원데이터를 변경

- 스칼라(하나의 값으로 전체)

- 같은모양(전체를 각각 변경

- 행만 같으면(행마다 다르게 변경)

- boolean indexing -> np.where 사용


import numpy as np 

# 브로드 캐스팅은 배열의 요소끼리 연산(배열의 모양이 다른것들을)
# 핵심 : 원데이터를 변경!!

a = np.array([1,2,3])
b = np.array([2,2,2])

r1 = np.vstack((a,b))
print(r1)
print("="*50)

r2 = a+b
print(r2)
print("="*50)

r3 = a+3
print(r3)
print("="*50)

r4 = a*[2]
print(r4)
print("="*50)

# [1,2,3] (백터중에서는 같은 크기 + 스칼라는 다됨)
r5 = a*[2,2,2]
print(r5)
print("="*50)

r6 = a/b
print(r6)
print("="*50)


n1 = np.arange(6)
n1 = n1.reshape(2,3)
print(n1)
print("="*50)

r1 = n1 * [2]
print(r1)
print("="*50)

r2 = n1 * n1
print(r2)
print("="*50)

# r2 의 shape(2,3)
print(r2.shape)
print("="*50)


arr1 = np.arange(6)
arr2 = np.arange(3)

arr1 = arr1.reshape(3,2)
arr2 = arr2.reshape(3,1)

print(arr1)
print(arr2)
print("="*50)

print(arr1+arr2)
print(arr1+2)


arr1 = [-1,2,-3,5]

arr1 = np.array(arr1)

r1 = arr1.sum()
print(r1)

arr1 = np.abs(arr1) # abs : 모든 값에 절댓값을 broadcasting한다.
print(arr1)
r2 = arr1.sum()
print(r2)


arr1 = [-1,2,-3,5]

# arr1 = np.array(arr1)

print(arr1)

# r = []
# for i in arr1:
#   if i<0:
#     i = i * -1
#   r.append(i)

# print(r)

# 이방법을 사용!!
arr1 = np.array(arr1)
arr2 = np.where(arr1 < 0, arr1 * -1, arr1)

print(arr2)

반응형