넘파이

주홍땅·2025년 6월 22일

데이터 분석

목록 보기
1/5
post-thumbnail

📌 넘파이
: 파이썬에서 사용되는 과학 및 수학 연산을 위한 라이브러리
: 주로 다차원 배열을 다루는 데에 특화되어 있으며 연산이 빠르고 효율적


📌 넘파이의 특징/기능

  • 다차원 배열
    : 다차원 배열(ndarray)는 동일한 자료형을 가지는 원소들로 이루어져 있으며 다양한 차원을 가질 수 있음
ndarr = np.array([[1,2,3,4],[5,6,7,8]])
  • 리스트와 ndarray 변환
    : 리스트에서 배열로 변환은 np.array() 함수로, 배열에서 리스트로의 변환은 tolist() 메서드를 사용
list1 = [1,2,3,4]
ndarr = np.array(list1)
list2 = ndarr1.tolist()
  • ndarray의 데이터 타입
    : 넘파이의 ndarray는 동일한 자료형을 가지는 원소들로 이루어져 있음
ndarr = np.array([1,3.14,"10",True], dtype=int)
print(ndarr5)
  • ndarray 인덱싱과 슬라이싱
    : 리스트와 유사하게 인덱싱과 슬라이싱을 지원
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))
profile
공부 기록 글입니다.

0개의 댓글