numpy

· numpy
numpy배열의 비교 연산은 항상 bool type 배열을 결과로 반환한다. broadcasting 비교 연산 배열 vs 스칼라값 x = np.array([4,3,2,6,5,8]) x>3 >array([ True, False, False, True, True, True]) 배열 x의 각 값마다 스칼라값 3과 비교하여 그 결과인 bool type 값들의 배열을 반환한다. 배열의 요소별 비교 연산 y = np.arange(1,7) x>y >array([ True, True, False, True, False, True]) 배열 x와 y의 index가 같은 값들끼리 비교한다. 이때 비교하는 배열들의 크기가 같지 않으면 ValueError가 발생한다. all & any all( ): 모든 값이 참이면 true,..
· numpy
이전의 '배열의 연산'은 배열 내부의 값들을 계산하는 것을 다루었다. 이번에 다룰건 '배열끼리 연산'이다. 배열끼리의 사칙연산 같은 구조의 배열끼리는 요소별 연산을 수행한다. 예시를 보면 다음과 같다. x = np.arange(1,13).reshape(-1,3) x >array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) print(x+x) print(x-x) print(x * x) print(x / x) print(x ** x) # 거듭제곱 >[[ 2 4 6] [ 8 10 12] [14 16 18] [20 22 24]] [[0 0 0] [0 0 0] [0 0 0] [0 0 0]] [[ 1 4 9] [ 16 25 36] [ 49 64 81] [100 121..
· numpy
vstack(()): 수직으로 배열 붙임(vertical) hstack(()): 수평으로 배열 붙임(horizontal) 기본적으로 numpy는 열벡터를 표현할수 없기 때문에 1차원 행 배열로 표현된 벡터를 열배열 형태로 hstack할때는 reshape해줘야한다. 다음과 같이 벡터를 생성하고 vstack하면 a1 = np.array([1,2,3]) a2 = np.array([4,5,6]) np.vstack((a1,a2)) >array([[1, 2, 3], [4, 5, 6]]) 이렇게 수직으로 배열이 합쳐진다. 그리고 hstack을 하면 두 배열이 각각 수평으로 나열되는 것이 아니라 완전히 하나의 배열로 합쳐진다. np.hstack((a1, a2)) >array([1, 2, 3, 4, 5, 6]) a1, ..
· numpy
배열의 연산에는 sum(∑), mean(평균), std(표준편차), sqrt(√), square(모든 값²) 등이 있다. 각각의 연산은 parameter인 axis를 이용하여 계산할 수 있는데, axis=0 이면 행 끼리 계산하고 axis=1 이면 열 끼리 계산한다. 예를 들어보면 import numpy as np test_arr = np.arange(1,13).reshape(4,-1) test_arr >array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12]]) test_arr.sum(axis=0) >array([22, 26, 30]) 위와 같이 axis=0이면 행끼리 더해서 결과 값의 개수 = 기존 배열 열의 개수와 같다. axis=0은 행 방향, axis=..
· numpy
identity(n=행렬크기, dtype=데이터타입): 단위행렬 생성 m_xx = np.arange(12).reshape(3,-1) m_xx >array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) np.identity(5,float) >array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]]) eye(N=행 개수, M=열 개수, k=1시작 위치): k기준 대각방향 값=1인 행렬 생성 np.eye(5,3,1) >array([[0., 1., 0.], [0., 0., 1.], [0., 0., 0.], [0., 0.,..
· numpy
ones: 1로만 구성된 numpy배열 zeros: 0으로만 구성된 numpy배열 empty: 빈 numpy배열이나, 메모리를 초기화하지 않고 shape 크기 만큼 할당한 메모리공간의 값 반환하므로 생성될때마다 다른 값을 반환한다. 셋 다 매개변수로 shape를 지정하여 원하는 형태의 배열을 생성 할 수 있다. 또 dtype으로 데이터 타입도 지정 가능하다. np.ones(shape=(3,5), dtype=np.int8) >array([[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]], dtype=int8) empty는 빈 배열이 나오는게 아니라 shape크기 만큼의 메모리에 원래 있던 값을 반환한다고 생각하면 된다. np.empty(shape=(3,5),dtyp..
· numpy
arange()는 배열을 생성하는 함수라고 생각하면 된다. arange(마지막값) --> 0~(마지막값-1)까지의 배열 생성 즉, arange(값)은 값 미만까지의 배열을 생성한다. import numpy as np np.arange(5) >array([0, 1, 2, 3, 4]) arange(시작값, 마지막값, 증가값) --> 시작값, 시작값+증가값, 시작값+증가값+증가값, ..., (마지막값-1)까지의 배열 생성 이때 (마지막값-1) != (이전값+증가값)이면 배열에 포함되지 않으며 아래 코드와 같다. np.arange(1, 6, 2) >array([1, 3, 5]) 그리고 (마지막값) = (이전값+증가값) 이어도 (마지막값)미만까지만 배열에 포함되며 아래 코드와 같다. np.arange(1, 7, ..
· numpy
indexing 파이썬 리스트와 달리 [행, 열] 인덱싱 지원 slicing 파이썬 리스트와 달리 행과 열을 나눠서 슬라이싱 지원 [이상 : 미만] 또 슬라이싱에서 증가값(step)을 지원하는데, [시작값 : 끝값 : 증가index값] 방식이다. 따라서 [::건너뛸 행 수,::건너뛸 열 수] 이렇게 사용할 수도 있다. y = np.array([[1,3,4],[4,5,6]]) >array([[1, 3, 4], [4, 5, 6]]) y[0, ::2] >array([1, 4]) 행과 열을 구분할 수 있으므로 y[0][1] >3 0행 1열을 의미하고 다음 코드도 같은 결과를 가진다 y[0, 1] >3 그런데 전체 배열에서 증가값을 적용하려면 어떻게 해야할까? 간단히 [ :, ::증가값 ]방식으로 하면 된다. 앞..
· numpy
reshape 배열의 구조 변경하는 method로, 행이나 열(혹은 특정 차원)을 늘리거나 줄임 단, 전체 데이터 개수는 유지되어야함 # reshape한 데이터 개수 != 원본 데이터 개수 x = np.array(range(8)) x.reshape(2,2) >ValueError -1 : 전체 요소의 개수는 고정시키고 -1을 쓴 자리를 제외한 나머지 차원의 크기를 지정했을때 전체 요소의 개수를 고려하여 -1자리의 차원이 자동으로 지정됨 x.reshape(2,-1) #2행 지정, 열은 자동 계산 >array([[0, 1, 2, 3], [4, 5, 6, 7]]) flatten() 어떤 tensor든지 1차원 벡터로 변환 (= 평탄화) 이때 데이터 개수와 값은 그대로 유지됨 x.flatten() >array([..
· numpy
.shape: numpy배열에서 객체의 차원에 대한 구성 정보 반환 1차독립: m개의 벡터들의 1차결합에서 모든 스칼라 값이 0일때만 1차결합=0이 성립하는 벡터집합 rank(행렬의 계수): 행렬A에서 1차독립인 행벡터의 최대수를 A의 계수(rank)라고 하며, rank A로 나타냄 -KREYSZIG공업수학 rank=1 일때 (요소 개수, ) rank=2 일때 (행, 열) rank=3 일때 (행렬의 개수, 행, 열) rank=n 일때 (n차원의 행렬 개수, n-1차원의 행렬개수,..., 3차원의 행렬개수, 행, 열) tensor_rank5 = [ [[ [[1,2,5,8],[1,2,5,8],[1,2,5,8]], [[1,2,5,8],[1,2,5,8],[1,2,5,8]], [[1,2,5,8],[1,2,5,8]..
siwoli
'numpy' 카테고리의 글 목록