📌 넘파이
: 파이썬에서 사용되는 과학 및 수학 연산을 위한 라이브러리
: 주로 다차원 배열을 다루는 데에 특화되어 있으며 연산이 빠르고 효율적
📌 넘파이의 특징/기능
ndarr = np.array([[1,2,3,4],[5,6,7,8]])
list1 = [1,2,3,4]
ndarr = np.array(list1)
list2 = ndarr1.tolist()
ndarr = np.array([1,3.14,"10",True], dtype=int)
print(ndarr5)
ndarr2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(ndarr2d[0]) # 0행 가져오기
print(ndarr2d[:,0]) # 0열 가져오기
print(ndarr2d[ndarr2d>7]) # 7보다 큰 값들 가져오기
ndarr = np.array(['🍓', '🍉', '🍌', '🍒', '🍑'])
sel = [True, False, True, True, False]
print(ndarr[sel]) # bool형은 가져올 지 말 지를 결정
📌 행렬 연산
a = np.array([[1, 2, 3],
[2, 3, 4]])
b = np.array([[3, 4, 5],
[1, 2, 3]])
# 행렬 덧셈
print(a+b)
# 행렬 뺄셈
print(a-b)
# 행렬 원소별 곱셈
print(a*b)
# 행렬 나눗셈
print(a/b)
ndarr3 = np.array([[1, 2, 3],
[1, 2, 3],
[2, 3, 4]])
ndarr4 = np.array([[1, 2],
[3, 4],
[5, 6]])
print(ndarr3 @ ndarr4)
print(np.dot(ndarr3, ndarr4)
📌 순차적인 값 생성
: np.arange 함수는 일정한 간격으로 숫자를 생성하며 Python의 기본 range() 함수와 유사하지만, NumPy 배열을 반환함
arr = np.arange(1, 11)
for i in arr:
print(i, end="")
📌 정렬
: np.sort() 함수는 배열을 정렬하는 데 사용되며 기본적으로 원래 배열을 변경하지 않고 정렬된 배열의 복사본은 반환
ndarr = np.array([1, 10, 5, 7, 2, 4, 3, 6, 8, 9])
print(np.sort(ndarr)) # 오름차순 정렬
print(ndarr)
print(np.sort(ndarr)[::-1]) # 내림차순 정렬
ndarr2d = np.array([[11, 10, 12, 9],
[3, 1, 4, 2],
[5, 6, 7, 8]])
print(ndarr2d.shape)
# 열 단위로 정렬.
# 각 열의 값들을 개별적으로 오름차순으로 정렬하며, 행(row)의 순서는 재배열
print(np.sort(ndarr2d, axis=0))
# 행(row) 단위로 정렬. 각 행의 원소들이 개별적으로 오름차순으로 정렬
print(np.sort(ndarr2d, axis=1))
# 행 단위로 정렬한 후, 각 행의 값을 역순으로 정렬하는 동작을 수행
print(np.sort(ndarr2d, axis=1)[:, ::-1])
# axis=1과 동일하게 동작. -1은 배열의 마지막 축을 기준으로 동작하라는 의미.
# 2차원 배열에서 마지막 축은 axis=1을 나타냄
print(np.sort(ndarr2d, axis=-1))