numpy 패키지는 python 패키지 중에서도 아주 유명한 패키지입니다. 아래 링크건 웹페이지에서는 꼭 알아야하는 python 패키지 10개를 소개하고 있는데 그 중 하나가 바로 numpy입니다. 보통 한글로는 넘파이라고 읽습니다.
=> https://www.edureka.co/blog/python-libraries/
- Tensorflow
- Scikit-learn
- Numpy
- Keras
- PyTorch
- LightGBM
- Eli5
- Scipy
- Theano
- Pandas
또 다른 웹페이지(https://data36.com/python-libraries-packages-data-scientists/)에서는 가장 중요한 패키지로 5가지를 선정했습니다.
- Numpy
- Pandas
- Matplotlib
- Scikit-learn
- Scipy
넘파이는 행렬 연산을 위한 패키지라고 생각해도 좋습니다. 영상처리, 머신러닝, 통계처리 등은 결국 행렬을 다루는 것이기 때문에 넘파이 패키지는 매우 중요합니다. 이 페이지에는 제가 python으로 코딩을 하면서 유용했던 numpy 패키지의 함수 10개를 정리하려고 합니다.
1. 배열 생성: numpy.array()
아래와 같이 1차원 배열을 생성할 수도 있고(line 1), 2차원 배열을 생성할 수도 있습니다(line 4). 그 이상도 가능합니다. 그리고 생성하면서 데이터타입을 정해줄 수도 있습니다(line 7).
2. 0으로 채워진, 1로 채워진 배열 생성: numpy.zeros(), numpy.ones()
0으로 채워진 배열은 쓸 일이 많습니다. 0 배열을 만들어놓은 후에 원소들에 적절한 값을 채워넣죠.
3. 배열 원소들 제곱근하기, 제곱하기: numpy.sqrt(), numpy.square()
배열 원소들의 제곱근을 구하고, 제곱을 구하는 것은 다음과 같은 방식으로도 가능합니다. python에서는 A의 n 제곱을 나타내기 위해 ** 연산자를 사용합니다. 제곱근의 경우 0.5승하는 것이므로 A ** 0.5로 표현 가능합니다.
항상 코딩이라는 것이 단 한가지의 방법만 있는 것이 아니죠. ㅎㅎ 사용자의 개성이 반영될 수 있는 여지가 있는 것이 코딩의 매력이기도 합니다.
4. 데이터 타입 변환: numpy.int64(), numpy.float64() 등
아래 line 3을 보시면 생성한 배열 A의 데이터타입이 float64입니다. float는 부동소수형입니다. line 4는 배열의 데이터타입을 int8로 바꿔주는 코드입니다. int는 정수형이기 때문에, 결과적으로 소수들이 날아가고 정수만 남았습니다.
5. 배열 전치: numpy.transpose()
전치(transpose)라는 것은 배열의 행을 열로, 열을 행으로 변환해주는 것을 의미합니다.
numpy.transpose()를 이용하는 것 말고도 다음과 같은 방식으로도 전치가 가능합니다.
6. 배열 원소의 평균, 분산, 표준편차: numpy.mean(), numpy.var(), numpy.std()
7. 배열 원소 반올림, 올림, 내림: numpy.around(), numpy.ceil(), numpy.floor()
numpy.around() 대신에 numpy.round()를 써도 됩니다.
8. 배열 원소의 절대값: numpy.abs()
원소가 음수인 경우 양수로 바꿔줍니다. 양수인 경우에는 그대로 출력됩니다.
9. 배열 원소의 부호: numpy.sign()
배열 원소가 음수인 경우에는 -1을, 양수인 경우에는 1을, 0인 경우에는 0을 출력해줍니다.
10. 두 배열 잇기: numpy.concatenate()
두 배열을 이어줘야할 때는 numpy.concatenate()를 쓸 수 있습니다. 행을 늘리는 방향으로 이어줄 수도 있고, 열을 늘리는 방향으로 이어줄 수도 있습니다.
항상 질문과 지적은 환영입니다. 빠르게 답변드리고 있으니 댓글 남겨주세요.^^
'Dev > python' 카테고리의 다른 글
[Anaconda+python] Spyder 편집창 간지나게 변경하기 (0) | 2020.03.10 |
---|---|
[python] opencv (cv2) 패키지 유용한 함수 10개 정리 (0) | 2020.02.29 |
[Anaconda+python] 꼭 알아야할 conda 명령어 정리 (0) | 2020.02.23 |
[ubuntu+python] BRISQUE 모델로 이미지 품질 평가하기 (0) | 2020.02.22 |
[python] 산술 연산자(+, -, *, /, %, //, **) (2) | 2020.02.20 |
[Anaconda+python] GMSD의 matlab 코드를 python으로 작성하기 (1) | 2020.02.20 |
텐서플로와 케라스에 대한 짧은 정리 (2) | 2020.02.07 |
[Anaconda+python] CIFAR-10 데이터셋으로 이미지 분류기 만들기 (컨볼루션 신경망) (4) | 2020.02.06 |