분석가 황규진 2024. 7. 9. 10:33

기본 개념 

리스트는 배열(벡터)을 가지고 있지 않아서 곱하기나 나누기 같은 연산을 하지 못함 ⇒ 차원이 없다 그냥 요소를 가지고 있는 리스트일 뿐

배열로 바꿔주기 위해서는 numpy 사용 (array로 변환)

배열로 바꿔주면(np.array) 모든 연산 가능!

 

numpy.arange()

  • numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)

return : ndarray(n차원 디멘션(차원)으로 반환해줌)

'''
dtype(start + step) - dtype(start) and not step.
'''
np.arange(0, 5, 0.5, dtype=int)

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

np.arange(0, 5, 0.5)

array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])

 

numpy.linspace()

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

  • start 와 stop 값 사이에 num 만큼 일정한 사이 값을 만들어줌(기본값은 50)
  • endpoint = False 는 stop 값을 포함 안시킴
np.linspace(2.0, 3.0, num = 5, endpoint=False)

array([2. , 2.2, 2.4, 2.6, 2.8])

np.linspace(2.0, 3.0, num = 5, retstep = True, endpoint = False)

(array([2. , 2.2, 2.4, 2.6, 2.8]), 0.2)

 

0 dimentional , one dimentional , 2*2 dimentional , ...

np.ndim(np.array(32))0

0

# 1 차원
f = np.array([1,2,3,4,5])
np.ndim(f)

1

# 2차원 벡터, 2 x 2 행렬
d = np.array([[1,2],[1,2]])
d

array([[1, 2], [1, 2]])

#차원 확인
d.shape

(2, 2)

a = np.array([ [[111, 112, 113], [121, 122, 123]],
[[211, 212, 213], [221, 222, 223]],
[[311, 312, 313], [321, 322, 323]],
[[411, 412, 413], [421, 422, 423]] ])
a.shape
# (4,2) 가 3개 있다.

(4, 2, 3)

 

Indexing & Slicing

# 1.1 찾기
A = np.array([ [3.4, 8.7, 9.9],
[1.1, -7.8, -0.7],
[4.1, 12.3, 4.8]])

A[1][0]

1.1

# -7.8 ~ -0.7 찾기
A[1][1:]

array([-7.8, -0.7])

B = np.array([
[11, 12, 13, 14, 15],
[21, 22, 23, 24, 25],
[31, 32, 33, 34, 35],
[41, 42, 43, 44, 45],
[51, 52, 53, 54, 55]])
B[0:3, 2:]

 

B[1:, 1:4]

 

B =np.array([[0,1,2,3,4,5,6],
            [7,8,9,10,11,12,13],
            [14,15,16,17,18,19,20],
            [21,22,23,24,25,26,27]])
B[::2,::3]

array([[ 0, 3, 6],

[14, 17, 20]])

 

홀수 인덱스로만 이루어진 배열

v = np.array([1,2,5,6,10,12,21,40])
v[1::2]

array([ 2, 6, 12, 40])

 

역순으로 배열

v[::-1]

array([40, 21, 12, 10, 6, 5, 2, 1])

 

원소까지 역순으로

m = np.array([ [11, 12, 13, 14], [21, 22, 23, 24], [31, 32, 33, 34]])
m[:: , ::-1]

array([[14, 13, 12, 11], [24, 23, 22, 21], [34, 33, 32, 31]])

m[::-1 , ::-1]

array([[34, 33, 32, 31], [24, 23, 22, 21], [14, 13, 12, 11]])

m[::2]

array([[11, 12, 13, 14], [31, 32, 33, 34]])