NumPy 101: 10분 안에 NumPy 배우기
Numpy는 과학 컴퓨팅 및 데이터 분석을 위한 인기 있는 Python 라이브러리입니다. 숫자 데이터를 조작하고 처리하기 위한 많은 유용한 함수 및 메서드와 함께 강력한 배열 객체를 제공합니다. 이 블로그 게시물에서는 더 빠르고 깔끔한 코드를 작성하는 데 도움이 되는 필수 numpy 작업 중 일부를 공유합니다. 당신이 초보자이든 전문가이든, 이 numpy 치트 시트에서 유용한 정보를 찾을 수 있기를 바랍니다.
설치
numpy가 없으면 먼저 설치해야 합니다. 이틀 안에 설치할 수 있습니다:
핍 사용
pip install numpy
먼저 아나콘다 환경을 활성화한 후 다음 명령을 사용합니다.
conda install -c anaconda numpy
numpy를 사용하여 작업을 수행하기 전에 이를 가져와야 합니다.
import numpy as np
아주 기본적인 것부터 시작해 numpy 클래스의 스칼라 값을 생성하는 방법을 알아봅시다.
# int type
python_int = 2
numpy_int = np.int32(2)
print(type(python_int)) # ---> <class 'int'>
print(type(numpy_int)) # ---> <class 'numpy.int32'>
# float type
python_float = 2.5
numpy_float = np.float32(2.5)
print(type(python_float)) # ---> <class 'float'>
print(type(numpy_float)) # ---> <class 'numpy.float32'>
이제 배열 또는 목록으로 넘어갈 시간입니다.
1차원 배열
이제 numpy의 방법을 사용하여 1차원 배열을 만들어 봅시다 array().
# creating an 1-D array of int type
one_d_array_int = np.array([1,2,3])
print(one_d_array_int) # ---> output : [1 2 3]
# creating an 1-D array of float type
one_d_array_float = np.array([1.5,2.5,3.5])
print(one_d_array_float) # ---> output : [1.5 2.5 3.5]
이제 numpy의 방법을 사용하여 2차원 배열을 만들어 봅시다 array().
# 2-D int array
two_d_array_int = np.array([
[1,2,3],
[4,5,6],
[7,8,9]
])
print(two_d_array_int) # ---> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 2-D float array
two_d_array_float= np.array([
[1.1,2.1,3.0],
[4.1,5.1,6.1],
[7.1,8.1,9.1]
])
print(two_d_array_float) # ---> [[1.1, 2.1, 3.0], [4.1, 5.1, 6.1], [7.1, 8.1, 9.1]]
이제 any 배열의 차원을 구하는 방법을 알아보겠습니다.
# If the array is a 1-D array, then it'll return 1
print(one_d_array_int.ndim) # ---> output : 1
# If the array is a 2-D array, then it'l return 2
print(two_d_array_int.ndim) # ---> output : 2
print(one_d_array_int.shape) # ---> output : (3,)
print(two_d_array_int.shape) # ---> output : (3, 3)
배열의 데이터 유형 가져오기
print(one_d_array_int.dtype) # ---> output : dtype('int32')
배열 요소 조작
새 배열을 만든 다음 이 새 배열에서 작업을 수행하겠습니다.
a = np.array([[1,2,3,4,5,6,7],[8,9,10,11,12,13,14]])
print(a) # ---> output : [[ 1 2 3 4 5 6 7]
# [ 8 9 10 11 12 13 14]]
첫 번째 행의 세 번째 요소에 액세스하고 싶다고 가정해 보겠습니다.
# accessing 1st row's 3rd element
print(a[0,2]) # ---> output : 3
numpy는 또한 0 기반 인덱싱을 따르며 이로 인해 첫 번째 행을 얻으려면 1이 아닌 0을 써야 하고 세 번째 요소가 필요한 경우 열 값에 대해서도 마찬가지입니다. 2가 아니라 3.
특정 행 또는 열에만 액세스
# accessing only the first row
print(a[0,:]) # ---> output : [1 2 3 4 5 6 7]
# accessing only the second column
print(a[:,1]) # ---> output : [2 9]
# [startindex:endindex:stepsize]
print(a[0, 1:-1:2]) # ---> output : [2 4 6]
요소의 값 변경
a[0,2] = 99
print(a) # ---> output : [[ 1 2 99 4 5 6 7]
# [ 8 9 10 11 12 13 14]]
Numpy의 특수 배열
제로 매트릭스
# creating a zero matrix of shape(2,3)
print(np.zeros((2,3))) # ---> output : [[0. 0. 0.]
# [0. 0. 0.]
# [0. 0. 0.]]
하나의 매트릭스
# All 1s matrix
print(np.ones((3,2,2))) # ---> output : [[[1. 1.]
# [1. 1.]]
#
# [[1. 1.]
# [1. 1.]]
#
# [[1. 1.]
# [1. 1.]]]
# creating ones matrix int type
print(np.ones((3,2,2)), dtype='int32') # ---> output : [[[1 1]
# [1 1]]
#
# [[1 1]
# [1 1]]
#
# [[1 1]
# [1 1]]]
무작위 배열
특정 모양의 임의의 값을 갖는 배열을 갖고 싶다면 np.random.rand()메소드를 사용할 수 있습니다.
print(np.random.rand(3,3)) # ---> output : [[0.10671372 0.31133182 0.56572354]
# [0.34792672 0.88867917 0.25310353]
# [0.70052117 0.53243035 0.67948057]]
특정 모양의 임의의 int 값을 갖는 배열을 갖고 싶다면 np.random.randint()메소드를 사용할 수 있습니다.
# np.random.randint(start_value,end_value,size)
print(np.random.randint(-1,5, size=(3,3))) # ---> output : [[0 -1 2]
# [4 2 1]
# [4 4 0]]
end_value배타적이므로 출력 배열에 5가 없습니다.
를 언급하지 않으면 start_value기본 시작 값은 0이 됩니다. 를 언급해야 합니다 end_value.
단위 행렬
Identiity 행렬을 만들려면 np.identity()방법을 사용할 수 있습니다.
print(np.identity(3)) # ---> output : [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
배열 전치
a = np.random.randint(-1,5, size = (2,3)) # creating a random int array
print(a) # output : [[ 2 -1 1]
# [ 0 1 1]]
print(a.T) # output : [[ 2 0]
# [-1 1]
# [ 1 1]]
배열의 모양을 변경하려면 reshape()방법을 사용할 수 있습니다.
a = np.random.randint(-1,5, size = (2,3)) # creating a random int array
print(a) # output : [[ 2 -1 1]
# [ 0 1 1]]
print(a.reshape(3,2)) # output : [[ 2 0]
# [-1 1]
# [ 1 1]]
print(a.reshape(1,6)) # output : [[1 2 3 2 2 2]]
임의의 숫자로 채우기
특정 값으로 배열을 채우려면 np.full()방법을 사용할 수 있습니다.
print(np.full((3,3), 14)) # ---> output : [[14 14 14]
# [14 14 14]
# [14 14 14]]
특정 값을 가진 배열을 원하고 다른 배열과 동일한 모양을 원할 경우 np.full_like()메소드를 사용할 수 있습니다.
# Any other number (full_like)
print(np.full_like(a, 4)) # ---> output : [[4 4 4 4 4 4 4]
# [4 4 4 4 4 4 4]]
어레이 복사
a = [1,2,3] # created an array a
b = [10,20,30] # created an array b
print(a) # output : [1 2 3]
a = b # I'll explain it below
b[1] = 200 # changed b's 2nd element's value to 200
print(a) # output : [10 200 30] HOW??????
여기에서 의 값은 b에 복사되지 않고 a대신 어떤 값이 차례로 변경되는지 가리 a키기 시작 하지만 동일한 항목을 변경할 때마다 에 반영됩니다 .bba
스태킹 어레이
여러 배열을 세로 또는 가로로 쌓고 싶다면 각각 vstack()메소드 또는 hstack()메소드를 사용할 수 있습니다.
# Vertically stacking vectors
v1 = np.array([1,2,3,4]) # created array v1
v2 = np.array([5,6,7,8]) # create array v2
np.vstack([v1,v2,v1,v2]) # output : [[1 2 3 4]
# [5 6 7 8]
# [1 2 3 4]
# [5 6 7 8]]
print(np.hstack([v1,v2])) # output : [1 2 3 4 5 6 7 8]
a = np.array([1, 2, 3])
print(a.sum()) # sum of all values of a
print(a.max()) # max of all elements of a
print(a.mean()) # return mean of a
print(np.median(a)) # return median of a
print(np.std(a)) # return standard deviation of a
이것으로 numpy 치트시트 블로그 게시물을 마칩니다. Python에서 배열 및 행렬로 작업하는 데 유용하고 몇 가지 새로운 요령을 배웠기를 바랍니다. Numpy는 다양한 수치 계산 및 데이터 분석 작업을 수행하는 데 도움이 되는 강력하고 다재다능한 라이브러리입니다. numpy에 대해 자세히 알아보려면 공식 문서나 사용 가능한 일부 온라인 자습서 및 과정을 확인할 수 있습니다. 읽고 행복한 코딩에 감사드립니다!

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































