본문으로 바로가기

요즘 약간 신나게 일하는 기간은 아닌 모양입니다. 경기는 너무 나쁘고... 덩달아 월급쟁이인 저도 힘들고..ㅠㅠ. 뭐 그래서 약간 바쁜척 하느라 또 이러저리 시간이 지나가네요.ㅠㅠ. 꿈같은 괌을 다녀오고 [바로가기] 아직 괌 앓이 중이랍니다.^^

최근에 저는 Python을 공부한다고... (사실 최근이 아니라 아주 예전에.ㅠㅠ) 했었는데요... 요근래 IPython을 설치하는 법을 이야기했었죠.[바로가기] 이제 그 환경에서 numpy라는 아이에 대해 이야기를 할려고 합니다. numpy의 기초나 역사 그 어마어마한 기능까지 뭐 제가 다~~~ 이야기하기에는 전 너~~~무 초보이기때문에.. 그냥 언제나 그렇듯 제가 공부하거나 신기해했던 것을 이야기할까 합니다. 사실 이 내용은 GitHub에 있는 Python Numpy 기초 강좌 예제를 그냥 따라했던 것 뿐이랍니다.^^.



어디 어디 강좌 예제 등등을 다운받아 들여다 봐도 항상 numpy의 namespace는 np로 많이들 쓰는듯 하더군요.^^



먼저 numpy가 제공하는 기초 함수들 중 MATLAB에서도 제가 많이 봤던 아이들이 있더군요. 1로 채워진 정해진 크기의 행렬(배열)을 만드는 ones0으로 채워지는 zeros단위행렬을 만들어주는 eye가 있더군요^^ 살짝 방갑기도 하고^^



그리고, np.array를 이용해서 직접 행렬(배열)을 만들어 둘 수 있습니다. 그 크기를 알고 싶으면 shape데이터 형을 알고 싶으면 dtype을 이용하면 되구요.



그리고 데이터형을 변경하고 싶으면 astype을 사용하면 되구요. 또 배열을 선언할때 dtype 속성으로 데이터형을 지정할 수도 있습니다.



물론 일반 연산자를 사용해서 배열간 연산이 가능한데요. 곱하기(*) 기호는 각 요소별 곱을 수행하구요. (행렬의 곱이 아닙니다.) + 덧셈 기호로 스칼라 값을 더해도 각 요소에 모두 더합니다. 나눗셈도 마찬가지구요^^



그리고 ** 곱하기 기호를 두 번 연달아 적으면 제곱승이 됩니다. 위 16번 줄의 명령은 data1의 각 요소에 루트를 씌우라는 말입니다. 17번 명령은 **2는 ^2와 같은 결과구요. 모두다 각 요소를 각각 연산합니다.



또한 등간격의 숫자 배열을 지정할 수 있는 arange()명령이 있구요. 이에 따라 각 위치별로 잘라서 보거나 저장할 수 있습니다. 특이한 것은 22번 명령인데요. numpy 배열로 선언된 변수의 특정 구간을 다른 이름으로 저장해서 그 변수의 내용을 수정하면 원본도 같이 수정되더군요. 흠... 편한듯 하면서도 다른 언어 사용자들은 조심하셔야할 듯 합니다.^^



이렇게 가로 세로 위치를 이용해서 데이터 내용을 확인할 수 있구요. 또 MATLAB 유저라면 이해가 편하실텐데..  (:) 연산자를 사용해서 범위를 지정할 수도 있습니다.



특히 위 내용처럼 [:2, 1:]의 의미는 처음부터 2번행 직전까지의 행과, 1번 열 부터 끝 열까지라는 의미입니다. 정확하게는 29번 명령을 보시면 됩니다.

또 어설픈.. 기초이야기를 시작하네요. ㅎㅎ. 많은 분들은 아니지만... 이런 저런 분들이 오시는 블로그에 이렇게 공부하는 내용을 올리다니.. 저도 참 황당한 일입니다.^^. 그런데 희한하게 이렇게 올리고 나면 이 지식이 이제사 비로서 내 지식이 된듯한 착각(^^)이 있습니다.ㅠㅠ. 뭐 아무튼 그렇다구요^^



댓글을 달아 주세요

  1. BlogIcon 용작가 2015.03.19 11:20 신고

    뭔가 굉장히 어려운걸 공부하시는군요! 화이팅입니다. 열공! ^^

    • BlogIcon PinkWink 2015.03.19 12:27 신고

      네.. 기초입니다만... 굉장히.. 재미있는 결과를 언젠간 얻을 수 있을거라 생각하며 보고 있답니다.^^ 그리고 항상 우리는 화이팅입니다. ㅎㅎㅎ

  2. BlogIcon 워크뷰 2015.03.19 12:17 신고

    잘보고 갑니다^^

  3. BlogIcon *저녁노을* 2015.03.19 13:28 신고

    ㅎㅎ어렵네요

  4. BlogIcon 세상속에서 2015.03.19 17:45 신고

    요즘 날씨가 좋아서 꽃구경 하기 좋아요^^*

  5. BlogIcon 악랄가츠 2015.03.20 00:39 신고

    오늘은 심오하네요!
    숙연해집니다! 으응? ㅋㅋ

  6. BlogIcon 딸기향기 2015.03.20 01:04 신고

    학교서도 안한 파이썬을 여기와서 배우고 가네요 ㅋㅋ
    잘보고 가요

  7. BlogIcon 도랑가재 2015.03.20 07:24 신고

    공부도 되고 정리도 되고,,
    좋은 방법 같아요.^^~

  8. BlogIcon 양군! 2015.03.20 07:57 신고

    유용한 정보에 대해서 정리 잘 해주셔서
    잘보고 간답니다 ^^

  9. BlogIcon 핑구야 날자 2015.03.20 08:29 신고

    관심있는 분이라면 간단한 연산부터 시작하면 쉽게 배울 수 있겠죠

  10. BlogIcon Hansik's Drink 2015.03.20 09:29 신고

    다녀간답니다 ^^
    기분 좋은 하루를 보내세요~

  11. 2017.01.10 09:54

    비밀댓글입니다

  12. BlogIcon 안영주 2018.04.02 13:58 신고

    안녕하세요? 저는 멀티캠퍼스라는 삼성그룹 계열의 HR회사에서 업무를 하고 있는 안영주 라고 합니다.
    다름이 아니라, 집필하신 책을 보고 저희쪽에서 빅데이터를 위한 파이썬 과정의 온라인 콘텐츠과정의 강의가 가능하실런지 하고 메세지 남깁니다.
    저희가 요청하려는 분야는 PYTHONE NUMPY 기초를 비롯한 파이썬 언어는 알지만 빅데이터에 대해 알지 못하는 사람들을 위한 초급강의 입니다.
    혹시 온라인 강의에 대해 관심있으시다면 좀 더 자세히 말씀드릴 수 있는 기회를 줄 수 있으신지요?
    제 이메일 주소는 youngjoo.an@multicampus.com 입니다.
    그럼 답변 기다리겠습니다.

    • BlogIcon PinkWink 2018.04.02 14:28 신고

      우와~ 영광입니다. 먼저 연락을 주셔서 또한 감사합니다.

      그러나...
      저는 온라인으로 강의를 하는 것이 너무 어색할 것 같습니다.ㅠㅠ. 이게 약간 자신이 없네요ㅠㅠ.

      아무튼 연락주셔서 감사합니다. ^^

  13. 안영주 2018.04.02 16:54 신고

    안녕하세요? 답변 주셔서 감사합니다.

    원하시면 얼굴은 나오지 않고 목소리만으로도 가능한데 혹시 다시한번 고려해 주실 수는 없나요?
    지금 게시물만 봐도 너무나도 간결하게 작성되어 있어서
    설명 부분만 읽어주셔도 좋을 것 같은데요...너무 아쉬워 글 남겨봅니다.
    그렇다고 강요 드리는 것은 절대 아니오니 혹시 불편하셨다면 죄송합니다.
    그럼 좋은하루 되세요!

    • BlogIcon PinkWink 2018.04.03 09:49 신고

      아... 아닙니다. 연락을 받아 너무나 기분이 좋지만.. 제 여건이 아직 수업을 준비할 만큼 되지를 못하고 있습니다. 이것저것 시간을 사용해야할 일들이 많아서요..
      아무튼 너무나 감사합니다.^^