본문으로 바로가기

최근 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 명령으로 구현가능합니다.^^



댓글을 달아 주세요

  1. BlogIcon 핑구야 날자 2015.03.25 12:14 신고

    날이 풀리듯 술술 코딩이 잘되는 날은 기분도 좋지요

  2. BlogIcon 세상속에서 2015.03.25 15:18 신고

    여전히 열공 중이 시네요.^^*
    오늘도 수고하세요~

  3. BlogIcon 티나짱 2015.03.26 08:21 신고

    전이해불가네요 ~뭔가열공을하시는듯ㅋㅋ화창한하루잘보내세요

  4. BlogIcon 양군! 2015.03.26 09:07 신고

    항시 배움의 자세 대단해요..
    전아무것도 모르겠어요 ㅎ

  5. BlogIcon Hansik's Drink 2015.03.26 09:40 신고

    다녀갈게요^^ 좋은 하루를 보내세요~

  6. BlogIcon 신선함! 2015.03.26 09:52 신고

    다녀간답니다 ^^ 행복한 오늘이 되셔요~

  7. 2017.01.10 09:49

    비밀댓글입니다