728x90
반응형
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)
728x90
반응형
'Programming > Python' 카테고리의 다른 글
Python pandas 1강 - 데이터 다루기 (0) | 2021.10.26 |
---|---|
Python Numpy 7강 - 행렬곱, 연립방정식 (2) | 2021.10.21 |
Python Numpy 5강 - DB연결, 학습 (0) | 2021.10.20 |
Python Numpy 4강 - 데이터 합쳐서 시각화 하기 (0) | 2021.10.20 |
Python Numpy 3강 - arange, zeros, ones (0) | 2021.10.20 |