내 뉴럴 네트워크
Part2: 최소한의 파이썬
1. 필요한 모듈 설치
sudo apt install python3-pip
sudo apt install python3-numpy
sudo apt install python3-scipy
sudo apt install python3-matplotlib
sudo apt install python3-ipython
sudo apt install python3-ipykernel
2. 파이썬 실행
$ python3
Python 3.12.3 (main, Mar 3 2026, 12:15:18) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
3. 파이썬 프롬프트에서 리눅스 명령 실행
>>> import os
>>> os.system("ls -l")
total 24
-rw-r--r-- 1 mychip mychip 135 Apr 7 11:37 arrays.py
-rw-r--r-- 1 mychip mychip 594 Apr 7 12:09 class.py
-rw-r--r-- 1 mychip mychip 51 Apr 7 11:20 for_loop.py
-rw-r--r-- 1 mychip mychip 85 Apr 7 11:22 for_sqr.py
-rw-r--r-- 1 mychip mychip 259 Apr 7 11:44 plotting_arrays.py
-rw-r--r-- 1 mychip mychip 193 Apr 7 12:13 Skeleton_Code.py
4. 파이썬 프롬프트에서 파일 읽기 및 실행
>>> print(open('./arrays.py').read())
import numpy
a = numpy.zeros([3,2])
print(a)
a[0,0] = 1
a[0,1] = 2
a[1,0] = 9
a[2,1] =12
print(a)
print(a[0,1])
v = a[1,0]
print(v)
>>> exec(open('./arrays.py').read())
[[0. 0.]
[0. 0.]
[0. 0.]]
[[ 1. 2.]
[ 9. 0.]
[ 0. 12.]]
2.0
9.0
모듈로 읽기,
>>> import arrays
---------------------
파이썬 환경
Jupyter Notebook, MS Code 등이 편리한 파이썬 실행 환경을 제공한다. 파이썬 명령 줄 환경도 괜찮다. 파이썬 명령 줄 프롬프트는 '>>>' 다.
--------------------
파이썬 인터프리터 환경에서 문장 실행,
>>> 2+3
5
>>> print("Hello World!")
Hello World!
>>> x=10
>>> print(x)
10
>>> print(x+5)
15
>>> y=x+7
>>> print(y)
17
>>> print(z)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'z' is not defined
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
for 반복문,
>>> for n in range(10):
... print(n)
... pass
...
0
1
2
3
4
5
6
7
8
9
파이썬의 문장,
- 파이썬은 문장의 마침표가 따로 없이 '엔터'로 끝난다.
- 제어문의 구역 시작은 콜론(:) 이다.
- 제어문이 영향을 미치는 구역의 표시는 들여쓰기다. 문장 앞에 공백문자(스페이스 또는 탭)넣는다.
- pass 는 아무런 실행내용이 없는 '자리채움'일 뿐이다. 제어 영역의 마침을 표시한다.
- 샵(#) 문자 뒤는 주석(comment)이다.
파일 for_loop.py 에 작성한 for 반목문을 읽어서 실행,
>> print(open('./for_loop.py').read())
# For 반복문
for n in range(10):
print(n)
pass
print("done")
>>> exec(open('./for_loop.py').read())
0
1
2
3
4
5
6
7
8
9
done
함수,
>>> import os
>>> os.system("cat func_avg.py")
# Function that takes 2 numbers as input
# and outputs their average
def avg(x,y):
print("first input is: ", x)
print("second input is: ", y)
a = (x+y)/2.0
print("average is ", a)
return a
0
>>> import func_avg
>>> func_avg.avg(4,7)
first input is: 4
second input is: 7
average is 5.5
5.5
>>>
numpy는 통계, 수치해석 등의 응용에서 다차원 배열 객체를 수월하게 다룰 수 있도록 해주는 파이썬 모듈(라이브러리)이다. 배열 값을 0으로 채운 5행 6열 배열 객체를 생성하는 예는 다음과 같다.
>>> import numpy
>>> a = numpy.zeros([5,6])
>>> print(a)
[[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]]
대괄호([])는 배열에 접근할때 사용된다.
>>> a[0,0] = 1
>>> a[3,4] = 2
>>> a[5,5] = 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: index 5 is out of bounds for axis 0 with size 5
>>> a[4,5] = 3
>>> print(a)
[[1. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 2. 0.]
[0. 0. 0. 0. 0. 3.]]
파이썬 모듈 matplotlib는 행렬 데이터의 시각화에 유용하다. 5행 6열 2차원 배열 객체를 만들어 임의의 값을 저장한 후 값에 해당하는 가장 가까운 색으로 그림을 그리는 파이썬 스크립트 plotting_arrays.py는 다음과 같다.
# Plotting Array Example
# Filename: plotting_arrays.py
import numpy
arr = numpy.zeros([5,6])
(nRows,nCols)=arr.shape
print('Array has ',nRows, 'x', nCols)
for i in range(nRows):
for j in range(nCols):
arr[i][j] = int(numpy.random.rand()*100)
pass
pass
print(arr)
import matplotlib.pyplot
matplotlib.pyplot.imshow(arr, interpolation="nearest")
matplotlib.pyplot.show()
위의 파이썬을 실행 시켜보자.
>>> import plotting_arrays
Array has 5 x 6
[[81. 44. 98. 82. 13. 77.]
[63. 84. 42. 48. 50. 54.]
[31. 86. 60. 32. 91. 58.]
[49. 81. 3. 53. 22. 67.]
[34. 97. 13. 45. 50. 26.]]
객체 크래스,
댓글 없음:
댓글 쓰기