본문 바로가기

Software/Python

Python numpy 기초 - 기본적인 색인 연산

최근 Python Numpy의 기초에 관한 글을 올렸는데요.[바로가기] 이번에는 그 뒷 이야기로 색인에 관한 이야기를 할려고 합니다. 다시 이야기하지만.. 이 글의 예제는 github에서 본 한 python-numpy에 관한 예제 묶음을 보고 고대로~~~~~ 따라하는 것일뿐 아무 의미나 노력이 들어간것은 아닙니다.ㅠㅠ.



네~~~ 역시 numpy를 import하구요. 이번에는 사람이름이 들어간 배열을 하나 선언했습니다.



그리고, 7*4크기의 배열을 랜덤으로 선언했네요. numpy에서 랜덤 숫자를 생성하는 random.randn()이라는 함수를 이용했습니다. 이 때 행의 크기는 아까 사람이름을 저장한 배열의 크기와 같도록 한 것이죠.



이제.. 그 사람 이름 배열에서 위의 3번처럼 명령을 주면 names == 'Bob' 이렇게 주면 해당 배열에서 참인지 아닌지를 반환해 주네요^^ 그럼 랜덤 숫자를 가지고 있던 dataNames배열에 dataNames[names == 'Bob']이라고 하면 4번행처럼 결과가 나옵니다. Bob이름이 있는 행 번호의 값이 반환되는거죠^^ 또 지난번 글처럼... 그 상태에서 2번 열부터 보고싶다는 둥... 하는 그런 작업도 가능한거죠^^



실제... 위 그림처럼... mask 마스킹도 됩니다.^^.



Python 공부하면서 Python의 재미난 기능들 중 하나 dataNames[dataNames < 0] = 0라는 스타일로 명령을 줄 수 있다는 것이 참 재미있어 보였습니다.^^



reshape 명령을 이용하면 배열을 크기를 바꿀 수 있구요. 수학에서 이야기하는 transpose 전치 행렬도 간변히 16번 명령처럼 구현할 수 있습니다. 그리고 흔히 행렬의 곱은 dot 명령으로 구현가능합니다.^^


반응형