본문 바로가기
Python/Data Science

Python - Numpy (2)

by hooni40 2021. 7. 16.
728x90
반응형

 지난번에 Numpy 모듈에서 Array를 만드는 법에 대해 알아보았습니다. 오늘은 Numpy의 다른 기능들에 대해 정리해보겠습니다.

 

 Numpy는 Python의 List와 비슷한데요, 값을 받아오는 것, 인덱스가 있는 것 등 많은 공통점이 있습니다. 인데스가 있기 때문에 인덱스를 이용해 그 자리의 값을 가져오는 인덱싱도 리스트와 동일하게 할 수 있습니다. 아래 이미지를 보며 설명드리겠습니다.

 

인덱싱

 

 1번에서 as를 이용하여 numpy를 np로 정의함으로써 이후에는 np만 써서 numpy를 대체할 수 있습니다. 리스트의 인덱싱과 동일하기 때문에 5번, 6번 Cell은 이해가 되실 것 같은데요, 8번 Cell만 짚고 넘어가자면 인덱싱을 할때 리스트를 받아서 여러 값을 불러올 수도 있습니다. array1에서 2번/4번/5번 인덱스가 5/9/11이기 때문에 결과가 [5, 9, 11]이 나오게 됩니다.

 

 마찬가지로 리스트에서 사용하던 슬라이싱도 동일하게 사용할 수 있습니다. 아래 이미지를 보며 설명드리겠습니다.

 

슬라이싱

 

 3번 Cell을 보시면 리스트의 슬라이싱과 같이 2번 인덱스에서 4번 인덱스(5번 아니에요!)까지 출력이 되는 것을 확인할 수 있습니다. 4번 5번 Cell에서 ':'끝까지라는 뜻으로 4번 Cell은 처음부터 7번 인덱스(array1은 6번 인덱스가 마지막이므로 6번까지), 5번 Cell은 2번 인덱스인 5부터 끝까지 다 출력해줍니다. 6번 Cell이 그나마 헷갈리실 수 있는데요,

[시작 인덱스 : 종료 인덱스 : 등차]으로 생각하시면 될 것 같습니다. 즉 [1:6:2]는 1번 인덱스에서 2씩 더하면서 6까지 가는 것으로 1번/3번/5번 인덱스가 출력되어 [3, 7, 11]이 출력됩니다.

 

 이제 Numpy를 활용하여 값들을 계산하는 법을 배워보겠습니다. 먼저 array1과 array2를 만들어 줍니다. arrange함수를 사용하여 array1은 0~9, array2는 10~19가 포함된 배열을 만들어 줍니다. 

 

 

 만약 numpy를 사용하지않고 array1의 요소들에 2씩 곱해준다면 for문을 사용하여 array[i] = array[i] * 2를 사용해야 합니다. 하지만 numpy를 사용하면 위와 같이 array1 * 2만 적으면 요소 전체에 2씩 곱해집니다. 물론 array1의 값을 바꿔주기 위해서는 array1 = array1 * 2로 적어야 합니다.

 

 이뿐 아니라 요소의 수가 같은 array1과 array2의 같은 인덱스끼리의 연산도 가능합니다. numpy가 없다면 for문을 사용하여 코드 수가 길어지지만 numpy를 사용함으로써 간단하게 나타낼 수 있습니다.

 

 

 위와 같이 numpy를 사용하면 몇 개의 단어로 코드 수를 줄일 수 있습니다.

 

728x90
반응형

'Python > Data Science' 카테고리의 다른 글

Python - Pandas (1)  (0) 2021.07.19
Python - Numpy (3)  (0) 2021.07.17
Python - Numpy (1)  (0) 2021.07.15
Jupyter Notebook(2)  (0) 2021.07.14
Jupyter Notebook(1)  (0) 2021.07.13

댓글