### 2021.12.16

 

 

배열 속성 정보

import numpy as np

def array_info(array):
  print(array)
  print("ndim : ", array.ndim)
  print("shape : ", array.shape)
  print("dtype : ", array.dtype)
  print("size : ", array.size)
  print("itemsize : ", array.itemsize)
  print("nbytes : ", array.nbytes)
  print("strides : ", array.strides)
#In[]
a1 = np.array([1,2,3,4,5])

array_info(a1)

#Out[]
[1 2 3 4 5]
ndim :  1
shape :  (5,)
dtype :  int64
size :  5
itemsize :  8        
nbytes :  40        #size * itemsize
strides :  (8,)     #다음으로 넘어가기위한 itemsize
#In[]
a2 = np.array([[1,2,3,], [4,5,6], [7,8,9]])

array_info(a2)

#Out[]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
ndim :  2
shape :  (3, 3)
dtype :  int64
size :  9
itemsize :  8
nbytes :  72
strides :  (24, 8)     #다음 차원으로 넘어갈때 필요한 바이트
#In[]
a3 = np.array([[[1,2,3], [4,5,6], [7,8,9]],
               [[1,2,3], [4,5,6], [7,8,9]],
               [[1,2,3], [4,5,6], [7,8,9]]])
               
array_info(a3)

#Out[]
[[[1 2 3]
  [4 5 6]
  [7 8 9]]

 [[1 2 3]
  [4 5 6]
  [7 8 9]]

 [[1 2 3]
  [4 5 6]
  [7 8 9]]]
ndim :  3
shape :  (3, 3, 3)
dtype :  int64
size :  27
itemsize :  8
nbytes :  216
strides :  (72, 24, 8)

 

인덱싱(Indexing)

#In[]
print(a1)
print(a1[0])
print(a1[-1])
print(a1[-2])

#Out[]
[1 2 3 4 5]
1
5
4
#In[]
print(a2)
print(a2[0, 2])
print(a2[1, 1])
print(a2[2, -1])
print(a2[0, :])

#Out[]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
3
5
9
[1 2 3]
#In[1]
print(a3)
#Out[1]
[[[1 2 3]
  [4 5 6]
  [7 8 9]]

 [[1 2 3]
  [4 5 6]
  [7 8 9]]

 [[1 2 3]
  [4 5 6]
  [7 8 9]]]

#In[2]
print(a3[0,0,0])
#Out[2]
1

#In[3]
print(a3[1,:,:])
#Out[3]
[[1 2 3]
 [4 5 6]
 [7 8 9]]

#In[4]
print(a3[:,1,:])
#Out[4]
[[4 5 6]
 [4 5 6]
 [4 5 6]]

 

불리언 인덱싱(Boolean Indexing)

  • 배열 각 요소의 선택 여부를 불리언(True or False)로 지정
  • True 값인 인덱스의 값만 조회
#In[]
print(a1)
b1 = [False, True, True, False, True]
print(a1[b1])

#Out[]
[1 2 3 4 5]
[2 3 5]
#In[]
print(a1)
b2 = np.random.randint(0, 2, (3,3), dtype=bool)
print(b2)
print(a2[b2])

#Out[]
[1 2 3 4 5]

[[False  True False]
 [False  True False]
 [False False  True]]
 
[2 5 9]

 

팬시 인덱싱(Fancy Indedxing)

#In[1]
print(a1)
print(a1[0], a1[2])
#Out[1]
[1 2 3 4 5]
1 3

#In[2]
ind = [0,2]
print(a1[ind])
#Out[2]
[1 3]

#In[3]
ind = np.array([[0,1],
                [2,0]])
print(a1[ind])
#Out[3]
[[1 2]
 [3 1]]
#In[1]
print(a2)
#Out[1]
[[1 2 3]
 [4 5 6]
 [7 8 9]]

#In[2]
row = np.array([0,2])
col = np.array([1,2])
print(a2[row, col])
print(a2[:, col])
print(a2[row, :])

#Out[2]
[2 9]

[[2 3]
 [5 6]
 [8 9]]
 
[[1 2 3]
 [7 8 9]]

'Youtube > NumPy' 카테고리의 다른 글

[NumPy] #5 배열 연산  (0) 2021.12.18
[NumPy] #4 배열 변환  (0) 2021.12.18
[Numpy] #3 배열 값 삽입/수정/삭제/복사  (0) 2021.12.18

+ Recent posts