NumPy - 1

BANG·2021년 3월 4일
0

numpy

목록 보기
1/2

ndarray

N차원(Dimension) 배열(array) 객체

ndarray생성

  • np.array(파이썬_리스트)
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))
  • np.array(ndarray)

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))    # <class 'list'>
array1 = np.array(list1)

print(type(array1))    # <class 'numpy.ndarray'>
print(array1, array1.dtype)    # int32
  • 다른 데이터 타입으로 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형태 변환
    • -1 값은 1개의 인자만 입력해야 함

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)

#컬럼 axis 크기는 5에 고정하고 로우 axis크기를 이에 맞춰 자동으로 변환. 즉 2x5 형태로 변환 
array2 = array1.reshape(-1,5)
print('array2 shape:',array2.shape)
print('array2:\n', array2)

#로우 axis 크기는 5로 고정하고 컬럼 axis크기는 이에 맞춰 자동으로 변환. 즉 5x2 형태로 변환 
array3 = array1.reshape(5,-1)
print('array3 shape:',array3.shape)
print('array3:\n', array3)
profile
Record Everything!!

0개의 댓글