Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total



GitHub Contribution
Loading data ...
관리 메뉴

초보 개발자의 일기

NumPy - ndarray 개요 본문

소소한 공부 일기/데이터 분석

NumPy - ndarray 개요

Da다 2021. 5. 3. 14:57

ndarray?

n차원(dimension)의 배열(array)객체를 말한다.

환경

Jupyter Notebook에서 Python3로 파일을 생성한뒤, NumPy를 호출한다.

import numpy as np

비교를 위한 List 생성

파이썬 List를 생성하면 아래와 같은 결과가 나온다.

list1 = [1, 2, 3]
print("list1:", list1)
print("list1 type:", type(list1))
list1: [1, 2, 3]
list1 type: <class 'list'>

ndarray의 형태(shape)와 차원

ndarray는 np.array()안에 직접 리스트형 요소를 넣거나, 리스트를 미리 만들어 대입해도 생성 가능하다. 

List와 형태가 비슷해 보이지만 List는 동적할당을 받기 때문에 크기 수정이 가능하고,

ndarray는 정적할당을 받기 때문에 크기 수정이 불가능하다.

따라서 요소를 추가하거나 삭제하기 위해서는 새로운 array를 선언해주어야 한다. 

 

1차원 ndarray

array1 = np.array([1,2,3])

print('array1 type:',type(array1))
print('array1 array 형태:',array1.shape)		# ndarray.shape으로 shape을 알 수 있다.
print('array1 array 차원:',array1.ndim)		# ndarray.ndim으로 차원을 알 수 있다.
array1
array1 type: <class 'numpy.ndarray'>
array1 array 형태: (3,)
array1 array 차원: 1

array([1, 2, 3])

2차원 ndarray

array2 = np.array([[1,2,3],
                  [2,3,4]])

print('array2 type:',type(array2))
print('array2 array 형태:',array2.shape)
print('array2 array 차원:',array2.ndim)
array2
array2 type: <class 'numpy.ndarray'>
array2 array 형태: (2, 3)
array2 array 차원: 2

array([[1, 2, 3],       
       [2, 3, 4]])

2차원 ndarray - 행(Row)이 1개만 있는 2차원

array3 = np.array([[1,2,3]])

print('array3 type:', type(array3))
print('array3 array 형태:', array3.shape)		
print('array3 array 차원:',array3.ndim)		
array3 type: <class 'numpy.ndarray'>
array3 array 형태: (1, 3)
array3 array 차원: 2
array([[1, 2, 3]])

ndarray의 데이터 값 타입

ndarray내의 데이터 값은 숫자 값, 문자열 값, 불 값 등이 모두 가능하며,
ndarray 연산의 특성상 요소의 데이터 타입은 모두 같은 데이터 타입만 가능하다. 

array1 = np.array([1, 2, 3, 4, 5])			# 숫자만 입력
print(array1,array1.dtype)
print()
array2= np.array([1, 2, 3.0])				# 소수점이 있는 숫자와 혼합 입력
print(array2, array2.dtype)
print()
array3= np.array(['Python', 'NumPy', 'text'])		# 문자만 입력
print(array3, array3.dtype)
print()
array4= np.array([1, 2, 'text'])			# 숫자와 문자 혼합 입력
print(array4, array4.dtype)
[1 2 3 4 5] int32
[1. 2. 3.] float64
['Python' 'NumPy' 'text'] <U6
['1' '2' 'text'] <U11

숫자를 정수형으로 넣었을 때의 기본 타입은 'int32'이며, float 형태가 하나 이상 포함될 경우 'float64'로 저장된다.

문자만 입력했을 경우 타입은 'U6'으로, 숫자와 문자를 함께 입력했을 경우 'U11'로 저장된다.

ndarray연산에 문자를 사용하는 경우는 거의 없기 때문에 자세한 공부는 생략한다.


ndarray의 타입변환 : astype()

'int32' 저장되어 있는 array_int를 astype()을 이용하여 'float64'타입으로 변환한다

array_int = np.array([1, 2, 3])
print(array_int, array_int.dtype)

array_float = array_int.astype('float64')
print(array_float, array_float.dtype)
[1 2 3] int32
[1. 2. 3.] float64

'float64' 타입으로 변환했던 array_float을 다시 'int32' 타입으로 변환할 수 있다.

array_int1= array_float.astype('int32')

print(array_int1, array_int1.dtype)
[1 2 3] int32

 

 

※ 이지북스의 파이썬 머신러닝 완벽 가이드를 바탕으로 한 학습 기록입니다

Comments