목차
NumPy ndarray 객체 생성
배열 차원 (Dimensions in Arrays)
배열 차원수 체크
고차원 배열
동일 배열 차원의 각 차원의 요소 길이가 다른 경우
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() 함수에
선택적 매개변수인 n dtype=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,)
주소 복사
랜덤 이동
최신댓글