Numerical Python의 줄임말, 과학 계산용 고성능 컴퓨팅과 데이터 분석에 필요한 파이썬 패키지라고 한다.
ndarray 객체는 arange()와 array([]) 로 만들 수 있다.
import numpy as np
A = np.arange(5)
B = np.array([0,1,2,3,4])
C = np.array([0,1,2,3,'4'])
D = np.ndarray((5,), np.int64, np.array([0,1,2,3,4]))
# 각자의 print 결과값
# A = [0 1 2 3 4]
# B = [0 1 2 3 4]
# C = ['0' '1' '2' '3' '4']
# D = [0 1 2 3 4]
C가 저런 결과값이 나오는 이유는 파이썬의 유연함 때문.
array는 모든 element의 타입이 동일해야한다.
ndarray.size : 행렬 내 원소의 개수
ndarray.shape : 행렬의 모양
ndarray.ndim : 행렬의 축의 개수
reshape() : 행렬의 모양을 변경
>>> A = np.arange(10).reshape(2, 5)
A = [[0 1 2 3 4]
[5 6 7 8 9]]
ndarray 객체에 상수 연산을 하는 Numpy의 강력한 연산 기능
https://numpy.org/devdocs/user/basics.broadcasting.html
def return_something():
return 1
return 2
return 3
# 이 경우에는 맨 위의 리턴만 갖고오게 된다.
def return_multiple_things():
return 1, 2, 3
# 이 경우 리턴값을 받는 변수의 개수가 중요하다.
# 3개의 변수를 할당하면 각 변수에 한 리턴값씩 할당이 되지만,
# 2개의 변수를 할당하면 Error가 생기고,
# 1개의 변수를 할당하면 튜플 (1, 2, 3)로 받는다.
asterisk, 가변인수함수 관련
머리 속으로 정리를 못하던걸 조원 분이 잘 설명해주셨는데, 다시 내껄로 만들어서 다시 적어야겠다.
재귀함수 관련
재귀함수가 중첩되면서 과도하게 쌓이면 메모리 초과(stack overflow)가 일어나는 경우가 있음. "메모이제이션" 관련 더 찾아볼 것. 블로그에 잘 정리되어 있는 글들이 많다.
아직도 나는 파이썬 개념들이 머리 속에서 뒤죽박죽이고 봤던 것도 까먹고 새로운 정보들은 계속 들어오고 진짜 난장판이지만, 그래도 포기하지 말고 끝까지 버티고 해보자라는 자세로 어떻게든 머리 속에 집어넣어서 정리하는 중이다. 정리해야 할 것들이 너무 많아서 주말까지 정리할 수 있을지도 잘 모르겠지만, 일단은 최대한 소화하고 틀에 맞춰 정리하고 머리 속에서 조금이라도 더 기억을 끄집어낼 수 있게 해볼 생각이다. 이런 복잡하고 정신없는 연말은 처음이라 당황스럽고 기분이 이상하지만 그래도 앞으로 0.5cm라도 나아가고 있다는 긍정적인 생각으로 한번 해보자!!
엄청난 변화가 너무 많았지만 회복의 해였던 고마운 2021 안녕
2022 화이팅