python/numpy

python/numpy

11. numpy 이용 - 로또번호생성기, 원주율계산

1. 로또 번호 자동 생성기(함수로) 만들기 random.choice()함수 사용 import numpy as np def generate_lotto_nums(): return np.random.choice(np.arange(1, 46), size=6, replace=False) generate_lotto_nums() 2. numpy를 이용하여 pi(원주율) 값 계산 pi/4 : 1 = (4분원 안에 생성된 점 개수) : 전체 시도 횟수 pi = 4 * (4분원 안에 생성된 점 개수) / 1e7 total = int(1e7) points = np.random.rand(total, 2) 4 * np.sum(np.sum(points ** 2, axis=1) < 1) / total

python/numpy

10. ndarray 데이터를 이용하여 그래프 만들기

matplotlib 모듈을 이용하여 그래프를 표현해보자. 우선 numpy와 matplotlib을 불러보자. import numpy as np import matplotlib.pyplot as plt %matplotlib inline %matplotlib inline은 주피터에 그래프를 띄워준다. 우선 그래프로 표현할 벡터들을 구해보겠다. # np.random.seed(100) x = np.linspace(0, 10, 11) y = x ** 2 + x + 2 + np.random.randn(11) print(x) print(y) # [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.] [ 0.25023453 4.3426804 9.1530358 13.74756396 22.98132079 32.5..

python/numpy

9. linalg 로 선형대수 연산하기

데이터 분석을 하면서 선형대수 문제를 직접 푸는 경우가 있을 수 있다. 이때 사용할 수 있는 패키지 중 numpy의 linalg(linear algebra)패키지를 공부해보자. 1. linalg 서브모듈을 활용하여 선형대수 연산 import numpy as np numpy를 불러오고 - np.linalg.inv() 역행렬 구하기** np.linalg.inv() # x = np.random.rand(3, 3) # np.linalg.inv(x) # [[0.72618248 0.19402353 0.48140576] [0.48550792 0.53459657 0.90389888] [0.31030913 0.87959886 0.30089127]] array([[ 2.05411703, -1.18238533, 0.2655..

python/numpy

8. boolean indexing

boolean indexing이란 ndarray인덱싱 시, bool 리스트를 전달하여 True인 경우에만 필터링하여 ndarray의 값을 반환받는 것을 말한다. broadcasting을 활용하여 ndarray로부터 bool list를 얻고 짝수인 경우만을 뽑아보자. # import numpy as np np.random.seed(10) x = np.random.randint(1, 100, size = 10) print(x) # [10 16 65 29 90 94 30 9 74 1] 원소가 10개인 1차원 벡터를 만들었다. x에서 원소의 값이 짝수인 경우의 bool list를 만들어보자. # np.random.seed(10) x = np.random.randint(1, 100, size=10) print(x..

python/numpy

7. broadcasting

이번 시간에는 numpy에서의 broadcasting에 대해서 이해해보고 활용해보도록 하자. broadcasting은 numpy에서 가장 중요한 개념 중 하나이다. 중요하다고 딱히 어려운 건 아니다. 이전에 우리가 ndarray 연산을 할 때 shape이 같은 모양끼리만 연산이 가능했던 것을 기억해보자. broadcasting 개념은 shape이 같지 않은 모양의 ndarray 연산을 가능하게 한다. 1. shape이 같은 경우의 연산 # x = np.arange(15).reshape(3, 5) y = np.arange.rand(15).reshape(3, 5) print(x) print(y) # [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] [[0.34997891 0.5..

python/numpy

6. axis의 이해 - axis를 파라미터로 갖는 함수 -

numpy의 많은 함수들은 axis라는 parameter를 갖는다. axis는 축을 의미하는 데, 이는 각 (dimension)차원을 의미한다. 예를 들어 2차원 행렬은 두개의 axis 0, 1 을 갖고, 1차원 벡터의 경우 축이 하나이므로 axis 0 하나만을 갖는다. 이 축에 대한 언급을 하지 않는다면, 전체 데이터에 대해 적용하겠다는 의미(None)가 되고 만약에 axis(축)을 언급한다면 해당 축에 따라서 연산을 적용하겠다는 의미가 된다. 오늘은 이 축에 따라서의 의미에 대해 공부해보겠다. axis를 사용해서 연산을 적용하면 해당 axis에 따라서 연산이 적용되므로 결과는 해당 axis가 제외된 나머지 차원의 데이터만을 남기게 된다. 즉 결과의 차원은 언급된 axis의 개수만큼 감소된 값일 것이다..

python/numpy

5. numpy ndarray 기본함수 사용

numpy documentation numpy 공식 문서 링크 numpy에서 제공되는 함수등에 대한 문서 [NumPy Reference — NumPy v1.25.dev0 Manual numpy.org](https://www.numpy.org/devdocs/reference/) numpy ndarray의 연산 함수, 통계 함수, 집계 함수 등 다양한 기본 함수에 대해서 공부해보자. 더 자세한 내용은 위 사이트에서 검색해보면 파라미터 등 다양한 정보를 구할 수 있다. 1. numpy 연산 함수 (add, substract, multiply, divide) # x = np.arange(15).reshape(3, 5) y = np.random.rand(15).reshape(3, 5) print(x) print(..

python/numpy

4. ndarray -데이터 형태 바꾸기(reshape,flatten)-

ndarray의 shape 형태를 바꿔보자. import numpy as np 1. ravel(), np.ravel() - 다차원 배열 to 1차원 배열 ndarray의 형태를 바꾸는 함수 중 ravel함수와 np.ravel함수를 공부해보자. ravel, np.ravel 중 편한 함수를 사용하면 된다. 결과가 같다. ravel함수는 다차원의 배열을 1차원으로 변경해주는 함수로 order 파라미터를 갖는다 'C' 는 row를 우선 변경하고 'F' 는 column을 우선으로 변경한다. # x = np.arange(15).reshape(3, 5) x # [[ 0 1 2 3 4] # 2차원 배열 [ 5 6 7 8 9] [10 11 12 13 14]] 2차원 배열의 x를 ravel 함수를 이용하여 1차원 배열로 ..

Abokadoh
'python/numpy' 카테고리의 글 목록