최근 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 명령으로 구현가능합니다.^^
'Software > Python' 카테고리의 다른 글
Python numpy 기초 - 기초 집합 연산 (6) | 2015.04.05 |
---|---|
Python numpy 기초 - 배열의 조건 연산 및 수학 통계 관련 기초 연산 (8) | 2015.04.02 |
Python numpy 기초 - meshgrid의 사용과 matplotlib를 inline으로 선언해서 사용하기 (10) | 2015.03.27 |
Python numpy 기초 - 기본 배열 선언과 간단한 연산 (26) | 2015.03.19 |
Python에서 XML 다루기 (몹시 초보용) (18) | 2015.03.05 |
Win8에서 IPython Notebook 사용하기 (20) | 2015.02.27 |
Python에서 수행해 본 간단한 FFT 코드 (38) | 2015.02.09 |