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

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

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



분류 제목
set Python - set.isdisjoint() 메서드 - 두 Set의 공통요소 유무 체크. (= isdisj…
set Python - set.issubset() 메서드 - 서브 Set인지 체크. (= issubset메서드 = …
set Python - set.issuperset() 메서드 - 수퍼 Set인지 체크. (= issuperset메서…
set Python - set.pop() 메서드 ★ - Set에서 요소 랜덤 제거 후, 제거된 요소 반환. (= p…
set Python - set.remove() 메서드 ★ - Set에서 지정요소 제거. (= remove메서드 = …
set Python - set.symmetric_difference() 메서드 - Set의 공통요소 제외한 결합 S…
set Python - set.symmetric_difference_update() 메서드 - Set의 공통요소 제…
set Python - set.union() 메서드 ★ - 중복 시 한번만 포함해 Set 결합. (=셋 합치기 u…
set Python - set.update() 메서드 - 두 Set을 결합해 기존 set을 수정. (= update…
file Python - File Method - 파일메서드 종류
file Python - close() 메서드 ★★★ - 열린 파일 닫기. (= close메서드 = 클로즈 메서드)
file Python - detach() 메서드 △ - 버퍼에서 분리된 원시 스트림 반환. (= detach메서드 =…
file Python - fileno() 메서드 - 스트림의 파일 설명자를 숫자로 반환. (= fileno메서드 = …
file Python - flush() 메서드 ★ - 버퍼 비우기/정리. (= flush메서드 = 플러시메서드)
file Python - isatty() 메서드 - 파일 스트림이 상호대화형인지 체크. (= isatty메서드)
file Python - read() 메서드 ★★★ - 파일 읽기. (= read메서드 = 리드 메서드)
file Python - readable() 메서드 ★ - 파일 읽기 가능 여부 체크. (= readable메서드 =…
file Python - readline() 메서드 ★ - 파일 한 줄 읽기. (= readline메서드 = 리드라인…
file Python - readlines() 메서드 ★ - 파일 읽기 후, List 객체 반환. (= readlin…
file Python - seek() 메서드 ★ - 파일의 출력 시작점 설정. (= seek메서드 = 시크 메서드)
13/24
목록
찾아주셔서 감사합니다. Since 2012