지난번에 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를 사용하면 몇 개의 단어로 코드 수를 줄일 수 있습니다.
'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 |
댓글