파이썬 넘파이(Numpy)는 “Numerical Python”을 의미하며 Python으로 편안하게 수학, 통계, 숫자를 다룰 수 있도록 도와주는 라이브러리입니다. Numpy는 일반적으로 데이터 분석 및 기계 학습에 사용됩니다. 이번 포스팅에서는 NumPy의 기본 개념과 사용법에 대해 자세히 알아보겠습니다.

Numpy를 사용해야 하는 이유 (유용한 포인트, 혜택)
하나. 속도: Numpy는 빠른 수치 계산 및 벡터 연산에 최적화되어 있습니다. 이는 많은 양의 숫자를 처리할 때 유용합니다. 단순한 Python 배열보다 훨씬 빠르게 처리할 수 있습니다.
2. 폭넓은 사용성: Numpy는 선형 대수학, 난수 생성기, 푸리에 변환 등 복잡한 수치 계산을 지원하는 다양한 모듈을 제공하므로 사용자가 직접 복잡한 프로그래밍을 할 필요가 없습니다.
삼. 사용하기 쉬운 : NumPy는 간단하고 직관적인 인터페이스를 제공하여 사용자가 쉽게 사용할 수 있도록 설계되었습니다. 또한 코딩을 최소화하고 복잡한 계산을 모듈화하여 복잡한 데이터를 쉽게 분석할 수 있도록 도와줍니다.
4. 다른 라이브러리와의 좋은 호환성 : 데이터 분석과 기계 학습에 필수적인 Pandas, Scikit-learn, Tensorflow, Pytorch와 같은 라이브러리가 Numpy를 기반으로 개발됩니다. 따라서 NumPy를 올바르게 사용하는 방법을 알면 다른 라이브러리도 사용할 수 있습니다.
넘파이 설치 방법
numpy를 설치하려면 pip 명령을 사용하십시오. conda의 경우 다음 명령을 사용할 수 있습니다. Google Colab을 사용하는 경우 별도의 설치가 필요하지 않습니다.
pip install numpy
conda install numpy
numpy 배열이란 무엇입니까? (넘파이 배열)
다양한 유형의 numpy 배열이 있습니다. 가장 일반적으로 사용되는 배열 유형을 살펴보겠습니다.
하나. 1차원 배열 또는 벡터: 벡터라고도 하는 하나의 차원만 있는 배열입니다. 1차원 배열은 일련의 데이터, 시계열 데이터 또는 숫자 목록을 처리할 때 유용합니다.
2. 2차원 배열 또는 행렬 : 행렬이라고도 하는 2차원 배열입니다. 이는 테이블이나 그리드 또는 이미지 형식의 데이터를 처리할 때 유용할 수 있습니다.
삼. 다차원 배열 : NumPy 배열은 2보다 큰 차원을 가질 수 있습니다. 이를 통해 복잡한 데이터를 처리할 수 있습니다.
numpy 배열을 만드는 방법
목록을 사용하여 numpy 배열을 만드는 방법
하나. 1차원 배열 : 1차원 배열을 생성하려면 numpy.array() 함수를 사용할 수 있습니다. 아래 코드는 값 목록을 인수로 받아 NumPy 배열을 생성합니다.
import numpy as np
a = np.array((1, 2, 3, 4, 5))
print(a)
Output:(1 2 3 4 5)
2. 2차원 배열 : numpy.array() 함수를 사용하여 목록의 목록을 인수로 전달하여 2차원 배열을 만들 수도 있습니다.
import numpy as np
b = np.array(((1, 2, 3), (4, 5, 6), (7, 8, 9)))
print(b)
Output:
((1 2 3)
(4 5 6)
(7 8 9))
삼. 다차원 배열 : 2차원 배열과 마찬가지로 numpy.array() 함수에 대한 인수로 목록의 다차원 목록을 전달하여 다차원 배열을 만들 수 있습니다.
import numpy as np
c = np.array((((1, 2), (3, 4)), ((5, 6), (7, 8))))
print(c)
Output:
(((1 2)
(3 4))
((5 6)
(7 8)))
내장 방법을 사용하여 numpy 배열을 만드는 방법
하나. numpy.zeros() : 이 함수는 0으로 채워진 numpy 배열을 만듭니다.
import numpy as np
a = np.zeros((3, 4)) # creates a 3x4 array filled with zeros
print(a)
Output:
((0. 0. 0. 0.)
(0. 0. 0. 0.)
(0. 0. 0. 0.))
2. 숫자가 많은 것들() : 하나가득 이 함수는 numpy 배열을 만듭니다.
import numpy as np
b = np.ones((2, 3)) # creates a 2x3 array filled with ones
print(b)
Output:
((1. 1. 1.)
(1. 1. 1.))
삼. numpy.arrange() : 첫 번째 인수는 시작, 두 번째 인수는 중지, 세 번째 인수는 단계(증가할 양)입니다. 인자가 하나만 주어지면 해당 값을 stop으로 삼고 0부터 stop-1까지 1의 차이로 숫자를 삽입하여 NumPy 배열을 생성합니다.
import numpy as np
c = np.arange(10) # creates a 1D array of values from 0 to 9
print(c)
d = np.arange(2, 10, 2) # creates a 1D array of values from 2 to 8 with a step of 2
print(d)
Outout:
(0 1 2 3 4 5 6 7 8 9)
(2 4 6 8)
4. numpy.random.rand() : 이 함수는 0과 1 사이의 지정된 크기의 NumPy 배열을 생성합니다.
import numpy as np
e = np.random.rand(2, 3) # creates a 2x3 array of random numbers between 0 and 1
print(e)
Outout:
((0.68813563 0.34739787 0.61791562)
(0.61122345 0.10130204 0.76628478))
5. numpy.random.randn() : 이 함수는 지정된 크기의 NumPy 배열을 생성하여 0 주변의 정규 분포를 형성합니다.
import numpy as np
e = np.random.randn(2, 3) # creates a 2x3 array of random numbers araoun 0 (normal distribution)
print(e)
Output:
(( 0.28455175 1.12810574 -0.10206758)
( 0.23920506 -0.11442015 0.10781213))
6번째 엔umpy.lindspace() : 이 함수는 지정된 숫자 사이에 지정된 수의 등간격으로 NumPy 배열을 생성합니다.
import numpy as np
f = np.linspace(0, 1, 5) # creates a 1D array of 5 evenly spaced values from 0 to 1
print(f)
Output:
(0. 0.25 0.5 0.75 1. )
7. numpy.random.randint() : 주어진 숫자 사이에 주어진 숫자만큼 임의의 정수를 생성하여 NumPy 배열을 생성하는 함수입니다.
c = np.random.randint(1,30)
print(c)
c = np.random.randint(1,30,5)
print(c)
Output:
25
(26 5 18 4 3)
numpy 배열을 인덱싱하고 슬라이스하는 방법
하나. 1차원 배열
arr = np.array((1, 2, 3, 4))
print(arr(0))
Output:
1
arr = np.array((1, 2, 3, 4))
print(arr(1:3))
Output:
(2 3)
2. 다차원 배열
arr = np.array(((1, 2, 3), (4, 5, 6)))
print(arr(0, 1))
Output:
2
arr = np.array(((1, 2, 3), (4, 5, 6), (7, 8, 9)))
print(arr(:2, 1:))
Output:
((2, 3), (5, 6))
삼. 부울 인덱싱을 수행하는 방법
arr = np.array((1, 2, 3, 4))
mask = arr > 2
print(arr(mask))
Output:
prints (3, 4)
numpy 배열에 대해 알아야 할 유용한 응용 프로그램 기능
하나. 배열 전치
arr = np.array(((1, 2, 3), (4, 5, 6)))
print(arr.T)
Output:
array(((1, 4),
(2, 5),
(3, 6)))
2. 배열 재구성
arr = np.array((1, 2, 3, 4, 5, 6))
reshaped_arr = arr.reshape((2, 3))
print(reshaped_arr)
Output:
((1 2 3)
(4 5 6))
삼. numpy 배열 결합
arr1 = np.array(((1, 2), (3, 4)))
arr2 = np.array(((5, 6), (7, 8)))
concatenated_arr = np.concatenate((arr1, arr2), axis=0)
print(concatenated_arr)
Output:
((1 2)
(3 4)
(5 6)
(7 8))
4. numpy 배열 분할
arr = np.array(((1, 2), (3, 4), (5, 6), (7, 8)))
subarrays = np.split(arr, 2)
print(subarrays)
Output:
(array(((1, 2),
(3, 4))), array(((5, 6),
(7, 8))))
5. numpy 배열에서 최대값과 최소값 또는 최대값과 최소값의 위치 찾기
arr1 = np.array((10, 11, 12, 13, 14, 15, 16, 17, 18, 19))
print(arr1.max())#최대값 출력
print(arr1.min()) #최소값 출력
print(arr1.argmax()) #최대값의 위치(index) 출력
print(arr1.argmin()) #최소값의 위치(index) 출력
Output:
19
10
9
0
numpy 배열 작업을 수행하는 방법
하나. 요소별 작동
arr1 = np.array((1, 2, 3))
arr2 = np.array((2, 3, 4))
print(arr1 + arr2)
print(arr1 * arr2)
Output:
(3, 5, 7)
(2, 6, 12)
2. 매트릭스 연산
arr1 = np.array(((1, 2), (3, 4)))
arr2 = np.array(((5, 6), (7, 8)))
print(np.dot(arr1, arr2))
Output:
((19 22)
(43 50))
NumPy 스칼라 작업을 수행하는 방법
하나. 숫자를 더하다
arr = np.array((1, 2, 3))
result = arr + 2
print(result)
Output:
(3 4 5)
2. 숫자 나누기
arr = np.array((2, 4, 6))
result = arr / 2
print(result)
Output:
(1.0, 2.0, 3.0)
삼. 힘을 가합니다(아래 예는 제곱하는 방법을 보여줍니다).
arr = np.array((1, 2, 3))
result = arr ** 2
print(result)
Output:
(1, 4, 9)
요약
데이터 분석과 머신러닝에 필수적인 파이썬 라이브러리인 넘파이(Numpy)를 설치하고 구축하는 방법과 다양한 유용한 기능을 활용하는 방법을 코드 예제와 함께 배웠다. 여기에 있는 코드는 직접 실행하려고 하면 이해하고 기억하기가 더 쉽습니다. 알면 알수록 NumPy를 사용하여 데이터 분석 효율성을 높이는 것이 더 쉽고 유용합니다. 🙂
Python Matplotlib 사용 가이드 Matplotlib는 Python에서 그래프 및 차트와 같은 시각화를 쉽게 그릴 수 있게 해주는 라이브러리입니다. matplotlib, 라인 차트, 막대 차트, 분산형 차트, 히스토그램, 파이 차트, 영역 차트 설치 방법 datasciencediary.tistory.com