카테고리 없음

[행렬] numpy

재키재키 2022. 1. 15. 17:06

numpy는 행렬 연산에 최적화된 파이썬 모듈이다 주요 기능들을 조금 정리해보자. 

 

넘파이 배열 만들기

 

1) 리스트를 인자로 입력

import numpy as np

# 리스트를 Numpy 배열로 
lst = [1,2,3,4]
arr = np.array(lst)
print(arr)
[1 2 3 4]

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

2) 넘파이 함수를 이용

# zero base array
arr = np.zeros((2,2))
print(arr)
[[0. 0.]
 [0. 0.]]

# oen base array
arr = np.ones((2,3))
print(arr)
[[1. 1. 1.]
 [1. 1. 1.]]
 
# user input 
arr = np.full((2,3),7)
print(arr)
[[7 7 7]
 [7 7 7]]
 
# identity matrix
arr = np.eye(3)
print(arr)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
 
# reshape() 다차원으로 변형 -> 개수가 서로 다르면 오류
arr = np.array(range(1,16)).reshape(3,5)
print(arr)
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]]

# [Numpy] numpy 배열, 배열 생성 함수 :: 오늘도 난, 하하하 (tistory.com)

 

배열을 리스트로 

import numpy as np
# tolist() 매서드 이용, Numpy 배열을 리스트로 
arr = np.array(range(1,16)).reshape(3,5)
lst = arr.tolist()
# lst = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]

 

배열원소 가져오기 

배열 index는 0부터

row와  column 으로 접근

import numpy an np
arr = np.array(range(1,17)).reshape(4,4)
# arr =array([[ 1,  2,  3,  4],
       		[ 5,  6,  7,  8],
       		[ 9, 10, 11, 12],
       		[13, 14, 15, 16]])
            
# 원소 가져오기 
arr[0,0]
# 1
arr[3,3]
# 16
arr[1,1]
# 6

# 슬라이싱
arr[2:] # 3행부터~ 
# array([[ 9, 10, 11, 12],
#       [13, 14, 15, 16]])
            
arr[:,1:] # 2열부터~
# array([[ 2,  3,  4],
#       [ 6,  7,  8],
#       [10, 11, 12],
#       [14, 15, 16]])

arr[1:3,0:2]
# array([[ 5,  6],
#       [ 9, 10]])