ndarray
N차원(Dimension) 배열(array) 객체
ndarray생성
import numpy as np
list1 = [1, 2, 3]
print("list1:", list1)
print("list1 type:", type(list1))
array1 = np.array(list1)
print("array1:", array1)
print("array1 type:", type(array1))
ndarray 형태(shape)와 차원
- 형태(shape)은 ndarray.shape 속성으로 확인
- 차원은 ndarray.ndim 속성으로 확인
array1 = np.array([1,2,3])
print('array1 type:', type(array1))
print('array1 array 형태:', array1.shape)
array2 = np.array([[1,2,3],
[2,3,4]])
print('array2 type:', type(array2))
print('array2 array 형태:', array2.shape)
ndarray 데이터 타입
- 숫자, 문자열, bool값 모드 가능
- 같은 데이터 타입으로만 ndarray를 구성해야 함
- ndarray.dtype 속성으로 확인
list1 = [1,2,3]
print(type(list1))
array1 = np.array(list1)
print(type(array1))
print(array1, array1.dtype)
- 다른 데이터 타입으로 ndarray를 구성했다면, 사이즈가 큰 데이터 타입으로 알아서 변경됨
list2 = [1, 2, 3.0]
array2 = np.array(list2)
print(array2, array2.dtype)
ndarray 데이터 타입 변환
- ndarray.astype()을 이용하여 변환
- astype(변경할데이터타입)
- ndarray는 모두 메모리에 올라가기 때문에 메모리를 절약하기 위해 사용
array_float1 = np.array([1.1, 2.1, 3.1])
array_int2= array_float1.astype('int32')
print(array_int2, array_int2.dtype)
ndarray의 axis축
- 행, 열, 높이가 아니라 axis0, axis1, axis2같이 axis단위로 부여
array2 = np.array([[1,2,3],
[2,3,4]])
print(array2.sum())
print(array2.sum(axis=0))
print(array2.sum(axis=1))
ndarray 생성, 초기화 방법
arange(array + range)
- python의 range처럼 순차적으로 증가하는 값으로 ndarray 생성
sequence_array = np.arange(10)
print(sequence_array)
print(sequence_array.dtype, sequence_array.shape)
zeros
- 선언한 크기만큼 0으로 채워진 ndarray 생성
zero_array = np.zeros((3,2),dtype='int32')
print(zero_array)
print(zero_array.dtype, zero_array.shape)
ones
- 선언한 크기만큼 1로 채워진 ndarray 생성
- dtype을 설정하지 않으면 기본으로 실수형으로 선언됨
one_array = np.ones((3,2))
print(one_array)
print(one_array.dtype, one_array.shape)
차원과 크기를 변경
- reshape() 로 ndarray를 특정 차원 및 형태로 변환
- 변환 형태를 reshape()의 인자로 전달
- -1을 전달하면 특정 차원으로 고정된 가변적인 ndarray형태 변환
array1 = np.arange(10)
print('array1:\n', array1)
array2 = array1.reshape(2,5)
print('array2:\n',array2)
array3 = array1.reshape(5,2)
print('array3:\n',array3)
array1 = np.arange(10)
print(array1)
array2 = array1.reshape(-1,5)
print('array2 shape:',array2.shape)
print('array2:\n', array2)
array3 = array1.reshape(5,-1)
print('array3 shape:',array3.shape)
print('array3:\n', array3)