Python_44_ numpy

hyeong taek jo·2023년 9월 19일

Python

목록 보기
48/53

📌 numpy

  • 과학 계산을 위한 라이브러리로서 다차원 배열을 처리하는데 필요한 여러 유용한 기능을 제공
  • numpy에서 배열은 동일한 타입의 값들을 가지며, 배열의 차원을 rank 라 하고, 각 차원의 크기를 튜플로
    표시하는 것을 shape 라 함.
  • 예를 들어, 행이 2이고 열이 3인 2차원 배열에서 rank는 2 이고, shape는 (2, 3)

📌 기본

import numpy as np

list1 = [1,2,3,4]
a = np.array(list1)
print("a.shape-->", a.shape) #(4,)

# 행이 2이고 열이 3인 2차원 배열
b = np.array([[1,2,3],[4,5,6]])
print("b.shape--> ", b.shape) # (2,3) 2행 3열이라는 뜻
print("b-->" , b[0,0]) # 1

📌 슬라이싱

# numpy 슬라이싱
import numpy as np

lst = [
        [1,2,3],
        [4,5,6],
        [7,8,9]
]
arr = np.array(lst)
print("-----arr----")
print(arr)

# 슬라이스
a = arr[1:3, 0:2]  # 1:3은 1행에서 2행까지 / 0:2는 0열에서 2열까지
print("-----슬라이스 arr[1:2, 0:2]----")
print(a)
# 출력:
# [[4,5]]

📌 정수인덱싱

import numpy as np

lst = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]
a = np.array(lst)
print("----a-----")
print(a)
# 정수 인덱싱
# # 행범위  0~2 . 열범위 1~3 [최소-최대의 범위를 정하여 부분 집합]
s1 = a[[0,2],[1,3]] # 최소값 최대값을 알아서 도출함 # 슬라이싱은 : 로 구분했지만 정수인덱싱은 , 로 구분한다.
s2 = a[[0,1],[1,2]]
s3 = a[[1,2],[2,3]]
print("-----정수 인덱싱 a[[0,2],[1,3]]---")
print("s1  a[[0,2],[1,3]]---> %s" %(s1))
print("s2  a[[0,1],[1,2]]---> %s" %(s2))
print("s3  a[[1,2],[2,3]]---> %s" %(s3))

📌 dot

import numpy as np

lst1 = [
    [1,2],
    [3,4]
]

lst2 = [
    [5,6],
    [7,8]
]

a = np.array(lst1)
b = np.array(lst2)

# Matrix Product
c = np.dot(a,b)
print("numpy product a")
print(a)
print("numpy product b")
print(b)
print("numpy product np.dot(a,b)")
print(c)

# a = [ a11    a12
#       a21    a22]
#
# b = [ b11    b12
#       b21    b22]
#
# np.dot(a, b) = [ a11*b11 + a12*b21 ,  a11*b12 + a12*b22
#                  a21*b11 + a22*b21 ,  a21*b12 + a22*b22]

📌 axis

import numpy as np

a = np.array([[1,2],[3,4]])
print("np.array([[1,2],[3,4]])")
print(a)

s = np.sum(a)

print("numpy np.sum(a)")
print(s) # 10

# axis=0 이면, 컬럼끼리 더함
# axis=1 이면, 행끼리 더함
print("numpy np.sum(a, axis=0)")
s = np.sum(a, axis=0)
print(s) # [4 6]

print("numpy np.sum(a, axis=1)")
s = np.sum(a, axis=1)
print(s) # [3 7]

# , 각 배열 요소들을 곱
s = np.prod(a)
print("numpy np.prod(a)")
print(s) # 24   = (1*2) (3*4)
profile
마포구 주민

0개의 댓글