파이썬의 NumPy에 간단한 기능들을 정리한 코드입니다.
데이터 사이언스나 머신러닝 분야에서 많이 활용하는 넘파이에 대한 간단한 테스트 코드들입니다. 아나콘다의 노트북에서 실행하시면 됩니다.
넘파이의 N차원 배열
import numpy as np
#2차원 배열
A = np.array([[1,2], [3,4]])
print(A)
[[1 2]
[3 4]]
A.shape
A.dtype
dtype('int64')
B = np.array([[3,0], [0, 6]])
A + B
array([[ 4, 2],
[ 3, 10]])
A * B
array([[ 3, 0],
[ 0, 24]])
#형상이 같은 행렬끼리면 행렬의 산술 연산도 대응하는 원소별로 계산됩니다.
#행렬과 스칼라값의 산술 연산도 가능합니다.
print(A)
A * 10
array([[10, 20],
[30, 40]])
#수학에서는 1차원 배열은 벡터(Vector), 2차원 배열은 행렬(Metrix)라고 부릅니다.
#또 벡터와 행렬을 일반화한 것을 텐서(Tensor)라고 합니다.
#이 책에서는 기본적으로 2차원 배열을 행렬, 3차원 이상의 배열을 다차원 배열이라고 부릅니다.
#브로드캐스트
#넘파이에서는 형상이 다른 배열끼리도 계산할 수 있습니다.
#앞의 데모에서 2 * 2행렬 A에 스칼라값 10을 곱했습니다.
#이때 10이라는 스칼라값이 2 * 2행렬로 확대된 후 연산이 이루어집니다.
#이 똑똑한 기능을 브로드캐스트라고 합니다.
A = np.array([[1,2], [3,4]])
B = np.array([10,20])
A * B
array([[10, 40],
[30, 80]])
#위의 경우도 2차원배열에 1차원을 곱하면 브로드캐스트되서 연산이 됩니다.
#원소 접근
X = np.array([[51, 55], [14, 19], [0,4]])
print(X)
[[51 55]
[14 19]
[ 0 4]]
X[0]
array([51, 55])
X[0][1]
55
for row in X:
print(row)
[51 55]
[14 19]
[0 4]
#X를 1차원 배열로 변환(평탄화)
X = X.flatten()
print(X)
[51 55 14 19 0 4]
#인덱스가 0, 2, 4인 원소 얻기
X[np.array([0,2,4])]
array([51, 14, 0])
#이 기법을 응용하면 특정 조건을 만족하는 원소만 얻을 수 있습니다.
X > 15
array([ True, True, False, True, False, False])
X[X > 15]
array([51, 55, 19])
#넘파이 배열에 부등호 연산자를 사용한 결과는 bool배열입니다.
Congratulations @papasmf1! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
그런데 A.shape 밑에는 해당 결과가 빠졌네요 ^^