4.1.1. Basic Operations

NumPy 배열을 생성하는 가장 기본적인 함수는 array() 입니다. 첫 번째 인자로 리스트를 받는데 이것으로 array객체를 생성합니다.

>>> np.array( [1, 2, 3] ) #1차 배열 (벡터) 생성
>>> np.array( [ [1, 2, 3], [4, 5, 6] ) # 2x3 크기의 2차원 배열 (행렬) 생성

파이썬의 내장 함수인 range()와 유사하게 배열 객체를 반환해주는 arange() 함수가 있습니다.

np.arange(10) 라고 한다면 1차원 배얼 [0,1,2, ... ,9]를 생성하는 것입니다.

그리고 시작점과 끝점을 균일 간격으로 나눈 점들을 생성해주는 linspace()함수도 있습니다.

c = np.linspace(0, 1, 6)   # start, end, num-points 
d = np.linspace(0, 1, 5, endpoint=False)
c= [0.  0.2 0.4 0.6 0.8 1. ]
d= [0.  0.2 0.4 0.6 0.8]

위의 코드에서 c는 시작점이 0 이고 끝점이 1이므로 이를 6 점으로 표시하려면 0.2 간격씩 띄우면 됩니다. d는 시작점이 0 이고 끝점이 1인데 5등분으로 나누는데 끝점을 포함하지 않으니 0.2 간격으로 나뉘어 집니다.

배열의 산술 연산자는 새 배열이 만들어지고 그 결과로 채워집니다. 다음의 코드로 NumPy 연산을 설명해 보겠습니다

import numpy as np

a = np.array( [20,30,40,50] )
b = np.arange( 4 )
print("배열 a", a)
print("arrange로 생성한 b",b)
c = a-b
print("c=a-b 의 결과값",c)
print("b**2 의 결과값",b**2)
print("a의 sine값 * 10 의 결과값",10*np.sin(a))
print("a가 35보다 작은지에 대한 비교 결과",a<35)

AA = np.array( [[1,1],
                [0,1]] )
BB = np.array( [[2,0],
                 [3,4]] )
print("AA * BB 의 결과값\n",AA * BB)
print("AA @ BB 의 결과값\n",AA @ BB)
print("AA.dot(BB) 의 결과값\n",AA.dot(BB))

위 코드의 실행 결과는 다음과 같습니다.

배열 a [20 30 40 50]
arrange로 생성한 b [0 1 2 3]
c=a-b 의 결과값 [20 29 38 47]
b**2 의 결과값 [0 1 4 9]
a의 sine값 * 10 의 결과값 [ 9.12945251 -9.88031624  7.4511316  -2.62374854]
a가 35보다 작은지에 대한 비교 결과 [ True  True False False]
AA * BB 의 결과값
 [[2 0]
 [0 4]]
AA @ BB 의 결과값
 [[5 4]
 [3 4]]
AA.dot(BB) 의 결과값
 [[5 4]
 [3 4]]

a = np.array( [20,30,40,50] ) 1차원 배열로 NumPy 배열을 생성하여 그 이름을 a로 칭합니다.

numpy.arange([start,] stop[, step,], dtype=None) 함수는 start부터 stop 미만까지 step 간격으로 데이터 생성한 후 배열을 만드는 함수입니다. 따라서 b=np.arrange(4) 는 자동으로 [0 1 2 3] 라는 1차원 배열로 데이터가 존재하는 NumPy 배열을 생성합니다.

c=a-b , b**2 등 연산의 결과는 각각의 배열 값에 해당 연산을 한 것으로 계산하여 출력됩니다. *는 행렬곱이 아니라 요소별 곱셈입니다.

벡터의 내적이나 매트릭스의 벡터 곱이나, 메트릭스 곱을 계산하기 위해 @ 혹은 dot 함수를 사용합니다. matrix multiplication에 대해서는 별도로 학습하기 바랍니다.

AA.dot(BB) 메트릭스 곱은 AA[0,0]*BB[0,0]+AA[0,1]*BB[1,0]=5, AA[0,0]*BB[0,1]+AA[0,1]*BB[1,1]=4, AA[1,0]*BB[0,1]+AA[1,1]*BB[1,1]=3, AA[1,0]*BB[0,1]+AA[1,1]*BB[1,1]=4 가 나옵니다.

Last updated