소개
이 랩에서는 numpy.nditer 객체를 사용하여 NumPy 배열을 반복하고 개별 요소에 접근하는 방법을 배웁니다. 또한 nditer 객체의 op_flags 매개변수를 사용하여 배열의 요소를 수정하는 방법도 배웁니다. 마지막으로, nditer 객체를 사용하여 NumPy 배열에서 브로드캐스팅 (broadcasting) 에 대해 배웁니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
ndarray 생성 및 numpy.nditer 를 사용하여 반복
이 단계에서는 arange() 메서드를 사용하여 1 차원 NumPy 배열을 생성한 다음, numpy.nditer 객체를 사용하여 반복합니다.
import numpy as np
a = np.arange(0,40,5)
print ("The Original array is:")
print (a)
print ('\n')
## showing elements of array one by one
print ("The Modified array is:")
for x in np.nditer(a):
print(x)
배열의 전치 (transpose) 반복
이 단계에서는 2 차원 NumPy 배열을 가져와 전치를 구하고, nditer 객체를 사용하여 반복합니다.
import numpy as np
a = np.array([[11,2,3,4],[29,4,15,6],[11,21,39,31]])
print("The array is :")
print(a)
print("The transpose of the array is :")
at = a.T
print(at)
print("Iterating over the array:")
for x in np.nditer(at):
print(x, end=' ')
C 스타일 및 F 스타일 순서로 배열 반복
이 단계에서는 2 차원 NumPy 배열을 생성하고, 전치를 구한 다음, nditer 객체를 사용하여 C-style 및 F-style 순서로 반복합니다.
import numpy as np
a = np.array([[1,2,3,4],[8,9,5,6],[10,20,29,31]])
print("\nPrinting the array:\n")
print(a)
print("\nPrinting the transpose of the array:\n")
at = a.T
print(at)
print("\nIterating over the transposed array in F-style order:\n")
for x in np.nditer(at, order='F'):
print(x, end=' ')
print("\nIterating over the transposed array in C-style order:\n")
for x in np.nditer(at, order='C'):
print(x, end=' ')
브로드캐스팅을 사용하여 여러 배열 반복
이 단계에서는 서로 다른 차원의 두 NumPy 배열을 생성하고, nditer 객체를 사용하여 브로드캐스팅으로 반복합니다.
import numpy as np
a = np.arange(0,60,5)
a = a.reshape(3,4)
print ('The First array :')
print (a)
print ('\n')
print ('The Second array is')
b = np.array([1, 2, 3, 4], dtype = int)
print (b)
print ('\n' )
print ('The Modified array is')
for x,y in np.nditer([a,b]):
print ("%d:%d" %(x,y))
op_flags 를 사용하여 배열 값 수정
이 단계에서는 1 차원 NumPy 배열을 생성하고, op_flags 매개변수를 'readwrite'로 설정하여 nditer 객체를 사용하여 반복한 다음, 반복하면서 배열의 요소를 수정합니다.
import numpy as np
a = np.arange(0,50,6)
a = a.reshape(3,3)
print ('The Original array is:')
print (a)
print ('\n')
for x in np.nditer(a, op_flags=['readwrite']):
x[...] = 2 + x
print ('The Modified array is:')
print (a)
요약
이 랩에서는 NumPy 에서 nditer 객체를 사용하여 배열을 반복하는 방법과 op_flags 매개변수를 사용하여 반복 중에 배열의 요소를 수정하는 방법을 배웠습니다. 또한, 여러 배열을 동시에 반복하기 위해 nditer 객체를 사용하는 NumPy 배열의 브로드캐스팅 (broadcasting) 에 대해서도 배웠습니다.