본문 바로가기
728x90
반응형

Python 파이썬/numpy8

numpy ) 조건을 이용한 요소 선택(바꾸기) numpy.where() numpy.where( condition, [x, y] ) x, y 가 없을 때 numpy.asarray(condition).nonzero() 와 동일하게 작동함. x, y 가 있을 때 ** condition이 True일 경우 x를 False일 경우 y를 선택한다. 모든 매개변수는 브로드캐스팅이 가능하여야 한다. 요소 선택 np.where([[True, False], [True, True]], [[1, 2], [3, 4]], [[9, 8], [7, 6]]) # 실행결과 array([[1, 8], [3, 4]]) 바꾸기 a = np.array([[0, 1, 2], [0, 2, 4], [0, 3, 6]]) np.where(a < 4, a, -1) # -1 is broadcast # 실행결과 array([[ .. 2022. 3. 28.
numpy ) 난수 random 난수생성 rand : 0부터 1사이의 균일 분포로 실수 난수를 생성 randn: 기대값이 0이고 표준편차가 1인 가우시안 표준 정규 분포를 따르는 난수를 생성 np.random.seed(정수) # 시작 숫자를 정해 주면 항상 같은 숫자의 난수 발생 np.random.rand(정수x) # 난수 x개 발생 np.random.seed(0) # 시작 숫자를 정해 주어 항상 같은 숫자의 난수 발생 print(np.random.rand(5)) # 난수 5개 발생 # [0.5488135 0.71518937 0.60276338 0.54488318 0.4236548 ] print(np.random.randn(5)) # [-0.84272405 1.96992445 1.26611853 -0.50587654 2.54520078.. 2022. 3. 19.
numpy ) 함수 일반적인 수학 함수 a = np.arange(1, 6, 1) print(a) # [1 2 3 4 5] print(np.sin(a)) # [ 0.84147098 0.90929743 0.14112001 -0.7568025 -0.95892427] print(np.sin(a).round(3)) # [ 0.841 0.909 0.141 -0.757 -0.959] print(np.cos(a).round(3)) # [ 0.54 -0.416 -0.99 -0.654 0.284] print(np.tanh(a).round(3)) # [0.762 0.964 0.995 0.999 1. ] print(np.exp(a).round(3)) # [ 2.718 7.389 20.086 54.598 148.413] print(np.log(a.. 2022. 3. 19.
numpy ) 배열 array 인덱싱, 슬라이싱, 반복 인덱싱(indexing), 슬라이싱(slicing) a = np.arange(10)**2 print(a) # [ 0 1 4 9 16 25 36 49 64 81] print(a[3:5]) # 3번부터 5번 전까지 선택 #[ 9 16] print(a[2]) # 4 print(a[::-1]) # 전체요소를 역순으로 1개씩 건너뛰면 선택 #[81 64 49 36 25 16 9 4 1 0] print(a[0:6:2]) # 0번부터 6번 전까지 요소를 2개씩 건너뛰며 선택 #[ 0 4 16] a[0:6:2] = -a[0:6:2] # 0번부터 6번 전까지 요소를 2개씩 건너뛰며 선택한 값에 # 0번부터 6번 전까지 요소를 2개씩 건너뛰며 부호를 바꿔서 할당 print(a) # [ 0 1 -4 9 -16 25 36 4.. 2022. 3. 19.
numpy ) 배열 array 형 변환 .reshape( *shape ) shape로 배열모양을 변환시킨다. 단, 변환 전후의 크기(요소의 갯수)는 같아야 한다. reshpe은 참조값을 반화한다. a = np.arange(20) # 0~19까지 print(a.ndim) # 1 print(a.shape) # (20,) print(a.size) # 20 print(a) # [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19] a1 = a.reshape(4,5) # 3행 5열로 만들어 넣는다. a[0] = 100 print(a1.ndim) # 2 print(a1.shape) # (4, 5) print(a1.size) # 20 print(a1) #[[ 100 1 2 3 4] # [ 5 6 7 8 9] # [1.. 2022. 3. 19.
numpy ) 배열 array 연산 브로드캐스팅 (Broadcasting) 일정 조건을 부합하는 다른 형태의 배열끼리 연산을 수행하는 것 요소를 흩뿌리듯이 계산된다. x1 = np.array([1.0, 2.0, 3.0]) y1 = np.array([5.0, 10.0, 15.0]) x2 = np.array([[1.0, 2.0], [3.0, 4.0]]) y2 = np.array([[5.0, 10.0], [15.0, 20.0]]) z1 = np.array([-1.0, -2.0]) z2 = np.array([[5.0], [10.0], [15.0]]) # x1과 상수 print(x1 + 2) # [ 3. 4. 5.] # x1과 y1 print(x1 + y1) # [ 6. 12. 18.] # x2과 y2 print(x2 - y2) # [[ -4. -.. 2022. 3. 19.
numpy ) 배열 array 생성 np.array([]) 1차원 배열 생성 x1 = np.array([1.0,2.0,3.0]) x2 = np.array([5.0,10.0,15.0]) print(x1,x2) print(type(x1),type(x2)) # 실행결과 # [1. 2. 3.] [ 5. 10. 15.] # 2차원 배열 생성 y1 = np.array([[1.0,2.0],[3.0,4.0]]) y2 = np.array([[5.0,10.0],[15.0,20.0]]) print(y1); print() print(y2) print(type(y1),type(y2)) # 실행결과 # [[1. 2.] # [3. 4.]] # [[ 5. 10.] # [15. 20.]] # 리스트를 넘파이 배열로 a_list = [1.0,2.0,3.0] a_np = .. 2022. 3. 18.
numpy ) 넘파이 개요 개요 다차원 배열이나 행렬고 수학 함수를 지원하는 파이썬 패키지이다. 벡터화 연산(Vectorized operation)을 이용하여 간단한 코드로도 복잡한 선형 대수 연산을 수행해준다.. 배열 인덱싱을 사용한 질의(Query) 기능을이용하여 간단한 코드로도 복잡한 수식을 계산해준다. 핵심 부분이 C, C++(cpp)과 같은 저수준 언어로 개발되어서 빠르고, 데이터 과학 분야에 알맞게 최적화되어 있다. 속성 (멤버, 메소드) numpy.arange([start,] stop, [step,] dtype=None) 0(또는 start)부터 stop까지 1(또는 step)만큼 증가하며 1차원 배열을 만든다. ndarray.ndim 차원 수 ex) 1차원 배열(vector; 벡터), 2차원 배열(matrix ; 매.. 2022. 3. 18.
728x90
반응형