코드
#Rank
a = np.array([[1,2,3],[2,3,4]])
row_r1 = a[1, :] # [2,3,4] , rank=1
row_r2 = a[1:2, :] # [[2,3,4]], rank=2
row_r3 = a[[1], :] # [[2,3,4]], rank=2
세 개의 코드의 출력은 모두 비슷하게 생겼으나, 값을 명시해주는 것에 따라 출력물의 랭크(차원)이 달라진다.
#Rank
x = np.array([[0,1], [2,3]], dtype=np.int)
print(x) # [[0,1], [2,3]
z = x
print(z) # [[0,1], [2,3]]
z[0,0] = 100
print(z) # [[100,1], [2,3]]
print(x) # [[100,1], [2,3]]
파이썬은 기본적으로 call by reference이기 때문에 이런 원치않는 상황이 발생한다.
#np.empty_like, np.copy
x = np.array([[0,1], [2,3]])
print(x) # [[0,1], [2,3]
z = np.empty_like(x)
#z = np.copy(x)
print(z) # [[0,1], [2,3]]
z[0,0] = 100
print(z) # [[100,1], [2,3]]
print(x) # [[0,1], [2,3]]
때문에 np.empty_like 또는 np.copy 함수를 사용하여 해결할 수 있다.
#np.empty, np.empty
x = np.array([[0,1], [2,3]], dtype=np.int)
print(x, '\n') # [[0,1], [2,3]
z = np.empty_like(x) #배열을 인풋으로, 쓰레기 값을 채워 배열 생성
print(z, '\n') # [[?,?], [?,?]]
x = np.empty(x.shape) #쉐잎을 인풋으로, 쓰레기 값을 채워 배열 생성
print(x, '\n') # [[?,?], [?,?]]
np.copy는 실제 배열값을 복사하는 것이지만, np.empty, np_empty는 쓰레기 값으로 채운, 같은 쉐잎의 배열을 생성
#np.tile function
v = np.array([0,1,2,3])
print(v) # [0,1,2,3]
w = np.tile(v, (1,3))
print(w) # [[0,1,2,3,0,1,2,3,0,1,2,3]]
w = np.tile(v, (2,3))
print(w) # [[0 1 2 3 0 1 2 3 0 1 2 3], [0 1 2 3 0 1 2 3 0 1 2 3]]
np.tile을 이용해 반복적인 배열 생성
#plt.plot function
x = np.arange(0, 3*np.pi, 0.1)
y = np.sin(x)
print(x, '\n')
print(y, '\n')
plt.plot(x,y)
plt.show()
가장 기본적인 플로팅
#이외 꾸미기
y_sin = np.sin(x)
y_cos = np.cos(x)
plt.plot(x, y_sin)
plt.plot(x, y_cos)
plt.xlabel('x axis label') #x축 레이블
plt.ylabel('y axis label') #y축 레이블
plt.title('Sine and Cosine') #그래프 제목
plt.legend(['Sine', 'Cosine'])#범례. 순서대로 입력
plt.show()
그 밖에 꾸밈코드
#plt.subplot function
x = np.arange(0, 3*np.pi, 0.1)
y_sin = np.sin(x)
y_cos = np.cos(x)
plt.subplot(2, 1, 1)
plt.plot(x, y_sin)
plt.title('Sine')
plt.subplot(2, 1, 2)
plt.plot(x, y_cos)
plt.title('Cosine')
plt.subplots_adjust(hspace=0.5, wspace=0.2) #플롯간 간격 조절. title 겹침 문제 해결
plt.show()
plt.subplot을 활용한 서브플로팅
'머신러닝 > [논문으로 짚어보는 딥러닝의 맥]' 카테고리의 다른 글
[실습] 이미지 처리 실습하기 (0) | 2020.03.19 |
---|---|
4가지 CNN 살펴보기: AlexNet, VGG, GoogLeNet, ResNet (4) | 2020.03.17 |
기계 학습 용어 정리 (0) | 2020.03.15 |
시작에 앞서 (0) | 2020.03.14 |
Convolutional Neural Network(CNN)의 기초 (2) | 2020.03.14 |