DevSSOM
파이썬 Numpy - 배열의 기초 본문
반응형
배열의 데이터 타입 dtype
넘파이의 array는 파이썬 리스트와 달리 같은 데이터 타입만 저장이 가능함. 파이썬 리스트는 list = [1, 1.4, True, "S"] 이렇게 하나의 리스트에 다양한 데이터들을 넣을 수 있는 반면, 넘파이의 배열은 여러 데이터 타입들을 함께 쓸 수 없고, 하나의 형식만 저장할 수 있음. 넘파이 배열 = 단일 데이터.
arr = np.array([0, 1, 2, 3, 4], dtype=float) # <- 실수형
print(arr) # [0. 1. 2. 3. 4.]
print(arr.dtype) # 'float64'
print(arr.astype(int)) # [0 1 2 3 4] <- 정수형
dtype | 설명 | 다양한 표현 |
int | 정수형 타입 | i, int_, int32, int64, i8 |
float | 실수형 타입 | f, float_, float32, float64, f8 |
str | 문자열 타입 | str, U, U32 |
bool | 부울 타입 | ?, bool_ |
int32, int64에서 32와 64는 데이터를 저장할 수 있는 용량 (bit)를 의미. 그래서 int32보단 int64가 더 큼. int64는 i8이라고도 씀. float도 마찬가지. str 문자열 타입은 유니코드라고 해서 대문자 U로도 쓰고, 데이터 용량을 같이 쓴 U32라고도 씀. bool의 경우 참과 거짓을 판단하는데, ?라는 단일문자로 쓸 수도 있고, bool_ 이렇게도 쓸 수 있음.
ndarray 배열의 속성
ndarray에는 배열의 여러 정보를 나타내는 속성값을 담고 있는데. ndim, shape, size, dtype 등이 있음.
ndarray의 차원 관련 속성
- arr.ndim : 몇 차원인지를 구하는 함수.
- arr.shape : 말 그대로 배열의 모양에 대한 함수.
# 1차원 배열
list = [0, 1, 2, 3]
arr = np.array(list)
print(arr.ndim) # 1
print(arr.shape) # (4,) | 4개의 행이 1개의 열로 존재
# 2차원 배열
list = [[0, 1, 2], [3, 4, 5]]
arr = np.array(list)
print(arr.ndim) # 2
print(arr.shape) # (2, 3) | 2개의 행이 3개의 열로 존재
ndarray의 크기속성과 shape 조절
- arr.size : 배열 안에 들어가는 요소의 개수가 몇 개인지 구하는 함수.
- len(arr) : 배열 길이(행) 구하는 함수
# 크기속성
arr = np.array([0, 1, 2, 3, 4, 5])
print("arr.shape : {}".format(arr.shape))
# arr.shape : (6,)
print("배열 요소의 수 : {}".format(arr.size))
# 배열 요소의 수 : 6
print("배열의 길이 : {}".format(len(arr)))
# 배열의 길이 : 1
# shape 조절
arr.shape(3, 2)
print("arr.shape : {}".format(arr.shape))
# arr.shape : (3, 2)
print("배열 요소의 수 : {}".format(arr.size))
# 배열 요소의 수 : 6
print("배열의 길이 : {}".format(len(arr)))
# 배열의 길이 : 3
연습문제
import numpy as np
print("2차원 array")
#1부터 15까지 들어있는 (3,5)짜리 배열을 만듭니다.
matrix = np.array(range(1,16))
matrix.shape = 3,5
print(matrix)
# 1. matrix의 자료형을 출력해보세요.
print(type(matrix))
# 2차원 array
# [[ 1 2 3 4 5]
# [ 6 7 8 9 10]
# [11 12 13 14 15]]
# <class 'numpy.ndarray'>
# 2. matrix의 차원을 출력해보세요.
print(matrix.ndim) # 2
# 3. matrix의 모양을 출력해보세요.
print(matrix.shape) # (3, 5)
# 4. matrix의 크기를 출력해보세요.
print(matrix.size) # (15)
# 5. matrix의 dtype(data type)을 출력해보세요.
print(matrix.dtype) # int64
# 6. matrix의 dtype을 str로 변경하여 출력해보세요.
print(matrix.astype("str"))
# [['1' '2' '3' '4' '5']
# ['6' '7' '8' '9' '10']
# ['11' '12' '13' '14' '15']]
# 7. matrix의 (2,3) 인덱스의 요소를 출력해보세요.
print(matrix[2,3]) # 14
# 8. matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력해보세요.
print(matrix[0:2,1:4])
# [[2 3 4]
# [7 8 9]]
728x90
반응형
'Python > 기초' 카테고리의 다른 글
파이썬 pandas - 데이터프레임 (1) | 2021.07.26 |
---|---|
파이썬 pandas - Series 데이터 (0) | 2021.07.26 |
파이썬 Numpy - 배열의 인덱싱과 슬라이싱 (0) | 2021.07.26 |
파이썬 Numpy - 개념 (0) | 2021.07.24 |
파이썬 기초 - 객체지향 프로그래밍 (1) | 2021.06.10 |
파이썬 기초 - 반복문 (for문, for-range문, while문, break문) (0) | 2021.06.09 |
파이썬 기초 - 시퀀스 자료형 (0) | 2021.06.09 |
댓글