파이썬의 NumPy에 간단한 기능들을 정리한 코드입니다.

in #kr6 years ago

데이터 사이언스나 머신러닝 분야에서 많이 활용하는 넘파이에 대한 간단한 테스트 코드들입니다. 아나콘다의 노트북에서 실행하시면 됩니다.

넘파이의 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배열입니다.

Sort:  

Congratulations @papasmf1! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 200 posts. Your next target is to reach 250 posts.

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!

Support SteemitBoard's project! Vote for its witness and get one more award!

그런데 A.shape 밑에는 해당 결과가 빠졌네요 ^^

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63630.04
ETH 2656.44
USDT 1.00
SBD 2.81