넘파이에서 행렬 만들기
import numpy as np # 보통 np 라는 이름으로 많이 사용합니다.
verctor = np.array([1, 2, 3, 5])
matrix = np.array([[1, 2, 3, 5], [1, 4, 2, 3]])
list1 = [3, 2, 5, 4]
mat1 = np.array(list1) # 리스트를 넘파이 ndarray로 변환
list2 = mat1.tolist() # ndarray를 리스트로 변환
특별한 배열 만들기
# 0 또는 1로 채워진 행렬 만들기
zero = np.zeros(4, 5) # 행, 렬
one = np.ones(5, 4)
# 대각 성분이 1인 대각 행렬 만들기
identity1 = np.identity(n=5)
identity2 = np.eye(N=3, M=5, k=1) #행, 렬, 시작점
연속된 값이 있는 배열 만들기
arange1 = np.arange(3, 20, 2) # 3부터 19까지 step=2로 배열만들기
lin1 = np.linspace(3, 20, 5) # 3부터 30까지 숫자를 5개로 분할한 배열만들기
넘파이의 자료형
ndarr2 = np.array([1, 2, 3.14, 4])
print(ndarr2)
print(type(ndarr2))
print(type(ndarr2[0]))
print(type(ndarr2[2]))
# 분명 1 은 int형임에도 불구하고 float로 타입이 바뀜.
ndarr3 = np.array([1, 2, 3.14, True])
print(ndarr3)
print(type(ndarr3))
print(type(ndarr3[2]))
print(type(ndarr3[3]))
# True는 1로 변환됨.
ndarr4 = np.array(['1', 2, 3.14, True])
print(ndarr4)
print(type(ndarr4))
print(type(ndarr4[0]))
print(type(ndarr4[1]))
# 단 하나의 str이라도 있으면 전부 str로 바뀜.(우선순위 높음!)
ndarr3 = np.array([1, 2, 3.14, True], dtype=int)
# 모든 요소를 int형으로 변환
print(ndarr3)
print(type(ndarr3))
print(type(ndarr3[2]))
print(type(ndarr3[3]))
ndarr4 = np.array(['1', 2, 3.14, True], dtype=int)
print(ndarr4)
print(type(ndarr4))
print(type(ndarr4[0]))
print(type(ndarr4[1]))
# 다만 int 변환 가능하다면 dtype을 지정해 저장가능
자료형은 배열내에서 dtype= … 으로 표현되고 종류는 다음과 같다
- 행렬의 자료형 : <class 'numpy.ndarray'>
- 부호가 있는 정수형
- <class 'numpy.int8'>
- <class 'numpy.int16'>
- <class 'numpy.int32'>
- <class 'numpy.int64'>
- 부호가 없는 자료형
- <class 'numpy.uint8'>
- <class 'numpy.uint16'>
- <class 'numpy.uint32'>
- <class 'numpy.uint64'>
- 실수형
- <class 'numpy.float16'>
- <class 'numpy.float32'>
- <class 'numpy.float64'>
- 논리형 : <class 'numpy.bool'>
- 복수형 : <class 'numpy.complex64'>
- 문자형 : <class 'numpy.str_'>