import numpy as np
In [5]:
data = np.random.rand(2,3)
In [6]:
data
Out[6]:
In [7]:
import random
In [8]:
#Rnadom은 1 미만
dataList = [ [ random.random() for _ in range(3) ] for _ in range (2)]
In [9]:
dataList
Out[9]:
In [10]:
data[0]
Out[10]:
In [11]:
dataList[0]
Out[11]:
In [12]:
data[0][1]
Out[12]:
In [13]:
dataList[0][1]
Out[13]:
In [14]:
data[0,1]
Out[14]:
In [15]:
A = [ [ 10, 20], [30, 40 ]]
In [19]:
B = [[ 1, 2 ] , [3, 4]]
In [21]:
# 리스트는 덧셈하면 그냥 요소를 이어 붙여버린다.
A + B
Out[21]:
In [22]:
AA = np.array(A)
BB = np.array(B)
In [24]:
# 행렬연산
AA + BB
Out[24]:
In [26]:
# 리스트가 길이가 2배가 됨
A * 2
Out[26]:
In [27]:
AA * 2
Out[27]:
In [28]:
AA.shape
Out[28]:
In [29]:
AA.dtype
Out[29]:
In [30]:
#벡터 연산
v1 = np.array([1,2,3])
v2 = np.array([4,5,6])
In [31]:
v1.shape
Out[31]:
In [32]:
v2.shape
Out[32]:
In [33]:
AA.ndim
Out[33]:
In [34]:
v1.ndim
Out[34]:
In [35]:
v1 + v2
Out[35]:
In [36]:
v1 * v2
Out[36]:
In [37]:
v1.dot(v2)
Out[37]:
In [38]:
# 형변환
data
Out[38]:
In [39]:
data.shape
Out[39]:
In [41]:
data.reshape(3,2)
Out[41]:
In [42]:
AA
Out[42]:
In [43]:
BB
Out[43]:
In [44]:
# 행렬간의 곱셈
CC = np.dot(AA,BB)
In [45]:
CC
Out[45]:
In [46]:
CC = CC + 1
In [48]:
CC * 2
Out[48]:
In [50]:
# 행으로 브로드 캐스팅
CC + np.array([33, 44])
Out[50]:
In [51]:
# 전치행렬
data.T
Out[51]:
In [52]:
data
Out[52]:
In [54]:
# slicing
list1 = [ n for n in range(10, 70, 10)]
list1
Out[54]:
In [94]:
# reshape
AA = np.array(list1)
AA
Out[94]:
In [95]:
BB = AA.reshape(3,2)
In [96]:
BB
Out[96]:
In [59]:
BB[0][1]
Out[59]:
In [60]:
BB[: , 0]
Out[60]:
In [61]:
BB[ 0 : -1 , 1:2]
Out[61]:
In [97]:
BB[:,:]
Out[97]:
In [98]:
CC = BB
In [99]:
CC[0][0] = 122
In [100]:
# 값이 바뀌었다..!
BB
Out[100]:
In [110]:
# 깊은 복사
CC = BB.copy()
BB
Out[110]:
In [111]:
CC[0][1] = 123
In [112]:
BB
Out[112]:
In [114]:
list2 = [ n for n in range(10, 90, 10)]
In [115]:
AA = np.array(list2).reshape(2,4)
In [116]:
AA
Out[116]:
In [117]:
# 속도가 느리다!
it = np.nditer(AA, flags = ['multi_index'], op_flags = ['readwrite'])
In [118]:
while not it.finished :
idx = it.multi_index
print(AA[idx])
it.iternext()
In [119]:
## 행 추가에 대해서는 추가되는 행렬의 Shape을 모 행렬과 일치 시켜줘야 한다.
DD = np.concatenate((AA, np.array([ 1,2,3,4 ]) ), axis = 0)
In [121]:
BB = np.array([ 1,2,3,4 ])
In [124]:
BB = BB.reshape(1,4)
BB
Out[124]:
In [125]:
CC = np.concatenate((AA, BB), axis = 0 )
In [126]:
CC
Out[126]:
In [133]:
dd = np.array([100, 200, 300])
dd.shape
Out[133]:
In [131]:
# (3, )의 쉐잎을 (3, 1) 로 바꿔야 열에 추가할 수가 있다.
dd = dd.reshape(3, 1)
EE = np.concatenate((CC, dd), axis = 1)
In [132]:
EE
Out[132]:
In [134]:
data = np.loadtxt("C:/Images/csv/12.csv", delimiter = ',', dtype = np.int32 )
In [135]:
rows = data[ :, 0:1]
In [136]:
rows[0 : 5]
Out[136]:
In [137]:
np.max(rows)
Out[137]:
In [138]:
np.min(rows)
Out[138]:
In [142]:
np.zeros([2,3], dtype = np.uint8)
Out[142]:
In [143]:
np.ones([3,3])
Out[143]:
In [145]:
float_arr = AA.astype(np.float64)
'딥러닝 모델 설계 > Python 공통' 카테고리의 다른 글
제일 효율적인 벡터화 연산 좋은 자료 (0) | 2019.06.19 |
---|---|
Stride를 이용한 속도 최적화( Slicing ) (0) | 2019.06.19 |
csv 라이브러리 활용 및 Tkinter 파일 입출력 다이얼로그 (0) | 2019.06.17 |
MatPlotlib를 이용한 히스토그램 그리기 (0) | 2019.06.17 |
트리뷰 활용 엑셀만들기 (0) | 2019.06.17 |