• 회원가입
  • 로그인
  • 구글아이디로 로그인

[numpy] PY - NumPy Creating Arrays (배열 생성) ★ - 배열 차원 (= 중첩배열 = 다차원배열)

6714  
목차
  1. NumPy ndarray 객체 생성
  2. 배열 차원 (Dimensions in Arrays)
  3. 배열 차원수 체크
  4. 고차원 배열
  5. 동일 배열 차원의 각 차원의 요소 길이가 다른 경우

 

NumPy ndarray 객체 생성

 

1. NumPy는 배열 작업에 사용됨.

2. NumPy 배열 객체는 ndarray라 함.

3. array() 함수로 NumPy ndarray 객체 생성 가능.

4. List, Tuple, 그외 배열 유사 객체 등을 array() 함수 매개변수로 전달.

 


[예제1] - List 이용

 

import numpy as np

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

print(arr) # [1 2 3 4 5]

print(type(arr)) # <class 'numpy.ndarray'>

 


[예제2] - Tuple 이용

 

import numpy as np

arr = np.array((1, 2, 3, 4, 5))

print(arr) # [1 2 3 4 5]

print(type(arr)) # <class 'numpy.ndarray'>

 

 

배열 차원 (Dimensions in Arrays)

 

배열의 차원은 배열 깊이 (중첩 배열)의 정도에 관한 것임.

※ 중첩 배열 : 배열을 요소값으로 갖는 배열.

shape 속성 : 배열 모양 (=  배열 차원의 각 요소 개수) 반환.

※ 주의 사항.

배열 차원이 동일 시, 각 차원의 요소 개수는 동일해야 해야 함.

만약, 다르게 하려면 ndarrary 생성하는 array() 함수에

선택적 매개변수인 ndtype=object 추가. (맨 아래 예제 참고.)

 


[0 차원 배열]

0 차원 배열 또는 스칼라는 배열의 요소. 

배열의 각 값은 0 차원 배열임.

 

import numpy as np

arr = np.array(34)

print(arr)

 

결과값: 34


[1차원 (단차원) 배열]

0 차원 배열을 요소로하는 배열. (가장 일반적.)

 

import numpy as np

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

print(arr)

 

결과값: [1 2 3 4 5]


[2차원 배열]

차원 배열을 요소로하는 배열. 

※ 행렬 또는 텐서 표현에 사용.

 

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

print(arr)

 

결과값:

[[1 2 3]

 [4 5 6]]


[3차원 배열]

2 차원 배열 (행렬)을 요소로 포함하는 배열.

※ 3차 텐서 표현에 사용.

 

import numpy as np

arr = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])

print(arr)

 

결과값:

[[[1 2 3]

  [4 5 6]]


 [[1 2 3]

  [4 5 6]]] 

 

배열 차원수 체크

 

ndim 속성 : 배열을 차원을 정수로 반환.

 


[예제]

 

import numpy as np


a = np.array(34)

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

c = np.array([[1, 2, 3], [4, 5, 6]])

d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])


print(a.ndim) # 0

print(b.ndim) # 1

print(c.ndim) # 2 

print(d.ndim) # 3

 

 

고차원 배열

 

배열은 여러 차원 가능.

배열 만들 때 ndmin 독립변수 사용해 차원 수 정의 가능.

 


[예제]

 

arr = np.array([1, 2, 3, 4], ndmin=5)

print(arr)

print('배열 차원수 :', arr.ndim)

 

결과값:

[[[[[1 2 3 4]]]]]

배열 차원수 : 5


PS. 결과값 의미.

 

5차원 (가장 안쪽)에는 4개 요소 존재. 

4차원에는 벡터인 1개의 요소 존재. 

3차원에는 벡터가 있는 행렬인 1개 요소 존재. 

2차원에는 3D 배열인 1개 요소 존재.
1차원에는 4D 배열인 1개 요소 존재. 

 

 

PS.

동일 배열 차원의 각 차원의 요소 길이가 다른 경우

[예제1]

 

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6, 7]])

print(arr)

print(arr.shape)

 

결과값: 

Warning (from warnings module):

  File "C:\Users\aspire\AppData\Local\Programs\Python\Python39\hz.py", line 2

    arr = np.array([[1, 2, 3], [4, 5, 6, 7]])

VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray

[list([1, 2, 3]) list([4, 5, 6, 7])]

(2,)


[예제2]

 

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6, 7]], dtype=object)

print(arr)

print(arr.shape)


결과값:

[list([1, 2, 3]) list([4, 5, 6, 7])]

(2,)



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/24
목록
찾아주셔서 감사합니다. Since 2012