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

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

6712  
목차
  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,)



분류 제목
numpy PY - NumPy Intro (넘파이 소개)
numpy PY - NumPy Start (설치/시작/버전확인) ★ - 모듈 불러오기 (3가지 방법)
numpy PY - NumPy Creating Arrays (배열 생성) ★ - 배열 차원 (= 중첩배열 = 다차원배열…
numpy PY - NumPy Array Indexing (배열 색인) ★ - 배열 요소에 접근
numpy PY - NumPy Array Slicing (배열 자르기) ★ - 배열 요소 일부만 선택.
numpy PY - NumPy Data Types (데이터타입) ★ - 종류 / 확인 / 변환.
numpy PY - NumPy Array Copy vs View (배열 복사 vs 뷰) ★
numpy PY - NumPy Array Shape (배열 모양) ★
numpy PY - NumPy Array Reshaping (배열 재구성) ★ - 배열 모양 변경
numpy PY - NumPy Array Iterating (배열 반복) ★
numpy PY - NumPy Joining Array (배열 결합) ★
numpy PY - NumPy Splitting Array (배열 분할) ★
numpy PY - NumPy Searching Arrays (배열 검색) ★
numpy PY - NumPy Sorting Arrays (배열 정렬) - sort() 메서드 ★
numpy PY - NumPy Filter Array (배열 필터링) ★
numpy PY - NumPy Random : Numbers (난수 = 랜덤숫자)
numpy PY - NumPy Random : Data Distribution (랜덤 데이터 분포)
numpy PY - NumPy Random : Permutations (랜덤 순열)
numpy PY - NumPy Random : Seaborn (분포 시각화)
numpy PY - NumPy Random : Normal Distribution (정규 분포)
1/3
목록
찾아주셔서 감사합니다. Since 2012