
오늘은 내 주언어 파이썬과 넘파이 복습!
사실 파이썬은 코딩 테스트 준비할 때 계속 써왔었는데 넘파이는 예전에 인공지능 공부했을 때 이후로 첨이당,,😥
다시 시작하니까 빡세게 해봐야지~~~
파이썬
넘파이
맵플롯립
텐서플로우
인기 있는 라이브러리가 거의 모두 포함된 아나콘다!!!
알게된 점이 있다.
아나콘다에서는 여러 개의 가상 환경을 만들어서 사용할 수 있다.
이 때, 사용자가 개발환경을 선택하면서 사용할 수 있는데, 파이썬과 텐서플로우 간의 버전이 다르면 충돌이 생긴다.
이를 해결하기 위해서는 아래와 같은 과정을 거쳐야 한다.⭐
base라는 가상환경만 만들어 진다.Anaconda Prompt(anoconda3)를 실행하여 아래와 같은 명령어를 입력해준다.(base) c:\users\missr\deep> conda create -n deep python=3.7deep이라는 이름의 가상환경이 생성된다.이후에 실습을 위해 아래의 코드도 입력해준다.
(base) c:\users\missr\deep> conda activate deep
(base) c:\users\missr\deep> conda install spyder
(base) c:\users\missr\deep> conda install tensorflow
각각은 deep이라는 가상환경을 활성화해주고,
spyder와 tensorflow 라이브러리를 설치하는 과정이다.
진짜 엄첨나게 오래 걸린다..;;

1시간째 이러고 있는데 이게 맞나..?
내 컴퓨터 문제인걸까ㅠ
결국 아래 방법으로 다시 ..!
(base) c:\users\missr\deep> conda activate deep
(base) c:\users\missr\deep> pip install spyder
(base) c:\users\missr\deep> conda install spyder
(base) c:\users\missr\deep> pip install tensorflow
(base) c:\users\missr\deep> conda install tensorflow
왜 pip으로 먼저 설치하고 conda로 해야 되는걸까..?
검색해봤는데
pip는 python만 한정된 패키지 관리자이고, conda는 python 뿐만 아니라 c, java등에도 포함되는 패키지 관리자라고 한다.
| 라이브러리 이름 | 설명 |
|---|---|
| 넘파이(Numpy) | 효율적인 행렬 연산 라이브러리 |
| 맷플롯립(Matplotlib) | 다양한 그래프를 그리는 라이브러리 |
| 사이킷런(Scikit-learn) | 전통적인 머신러닝 라이브러리 |
| 텐서플로우(Tensorflow) | 딥러닝을 지원하는 라이브러리 |
| 케라스(Kears) | 고수준의 딥러닝 라이브러리 |
| 파이토치(Pytorch) | 페이스북에서 만든 딥러닝 라이브러리 |
| 판다스(Pandas) | 데이터 처리를 위한 라이브러리 |
그렇다면 해당 라이브러리들을 설치해보자!
(base) c:\users\missr\deep> activate deep
(deep) c:\users\missr\deep> pip install gtts
파이썬에서는 pip 명령어를 사용하여 라이브러리 모듈을 설치하는 것이 가장 쉬운 방법이라고 한다.
여기서 설치한 TTS는 Text To Speech 즉 언어를 말로 바꾸어 주는 라이브러리 모듈이다.
다음과 같은 프로그램을 간단하게 실행해보자~
from gtts import gTTS
tts=gTTS('HELLO')
tts.save('hello.mp3')
작업 디렉토리에 가면 hello.mp3라는 파일이 존재하는 것을 확인할 수 있다! 신기🥹
(신기해서 나한테 인사해주는 것도 만들었다...내 이름을 부른다...ㅎ_ㅎ?!)
반대로 음성을 인식하여 텍스트로 바꾸어주는 라이브러리를 설치해보자.
(deep) c:\users\missr\deep> pip install SpeechRecognition
(deep) c:\users\missr\deep> pip install pyaudio
다음과 같은 예제 프로그램도 실행해보았다.
import speech_recognition as sr
r= = sr.Recognizer()
with sr.Microphone() as source:
print("마이크로 말해보세요.")
audio = r.listen(source)
try:
t = r.recognize_google(audio)
print(f'말한 것이 : {t}인가요?')
except:
print("음성 인식에 실패했습니다.")
Numpy(Numerical Python)은 거의 모든 과학 및 공학 분야에서 사용되는 오픈 소스 파이썬 라이브러리이다.Numpy라이브러리에는 다차원 배열 데이터 구조가 포함되어 있다. 바로ndarray이다.ndarray는 동질적인 n-차원 배열(n-dimensional array)을 의미한다. 따라서 이는 다양한 수학적 행렬 연산을 수행하는 데 사용할 수 있다.
그럼 기억을 되새기며 실습해보자!
import numpy as np
넘파이 배열을 생성하는 가장 기본적인 방법은 넘파이가 제공하는 array함수에 파이썬 리스트를 전달하는 방법 이다.
a = np.array([1,2,3])
print(a)
아래는 2차원 배열을 생성하는 예시이다.
b = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(b)
| 속성 | 설명 |
|---|---|
| ndim | 축의 개수. 2차원 배열이면 ndim은 2이다. |
| shape | 배열의 형상. n개의 행과 m개의 열이 있는 경우 shape는 (n, m)이다. |
| size | 배열 안에 있는 요소들의 총 개수 |
| dtype | 배열 요소의 자료형 |
| itemsize | 배열을 이루는 요소의 크기로서 단위는 바이트이다. |
| data | 실제 데이터가 저장되는 메모리 블럭의 개수 |
print(b.shape) # 배열의 형상
print(b.ndim)
print(b.dtype)
print(b.itemsize)
print(b.size)
zeros()는 0으로 가득 채워진 배열
ones()는 1로 가득 채워진 배열
eye()는 대각선 요소만 1인 배열
np.zeros((3,4))
np.ones((3,4), dtype=np.int32)
np.eye(3)
np.arange(5)
np.arange(1,6)
np.arange(1,10,2)
시작값부터 끝값까지 균일한 간격으로 지정된 개수만큼의 배열을 생성한다.
np.linspace(0,9,10)
np.linspace(0,10,10)
arr = np.array([2,1,5,4,3])
np.sort(arr)
vstack()은 두 배열을 세로로 쌓고,
hstack()은 두 배열을 가로로 연결한다.
x = np.array([[1,2],[3,4]])
y = np.array([[5,6],[7,8]])
print(np.vstack((x,y)))
print(np.hstack((x,y)))
넘파이 배열을 자르는 메소드는 split()이다.
3X10배열을 3X3과 3X7로 잘라보자.
가로로 자르려면 axis=0, 세로로 자르려면 axis=1이어야 하므로
여기서는 axis=1이어야 한다.
array = np.arange(30).reshape(3,10)
arr1, arr2 = np.split(array, [3], axis=1)
print(arr1)
print(arr2)
ndarray 클래스의 메소드로 sum(), min(), max()와 같은 것들이 존재한다. 사용해보면 아래와 같다.
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a.sum())
print(a.min())
print(a.max())
특정 행이나 열에 대한 평균값을 계산하기 위해서는 아래와 같이 mean()함수는 axis 값과 함께 넘겨준다.
scores=np.arange(12).reshape(3,4)
print(scores)
print(scores.mean(axis=0))
print(scores.mean(axis=1))
다차원 배열을 1차원 배열로 만드는 과정이다.
x = np.arange(12).reshape(3,4)
print(x)
print()
print(x.flatten())
사실 뒤에 시각화 라이브러리인 matplotlib를 활용하여 그래프를 그리는 예제도 존재한다!
이번엔 너무 용량이 큰 관계로 다음 velog에 이어서 작성해야겠다.😊
이전에 R을 사용해서 연구실에서 과제 수행했었는데 생각할 수록 머신러닝, 데이터분석 분야에서는 R이랑 Python이 비슷하다는 생각이 든다.🤔
ㅎㅎ 힘내자 화이팅 ~