numpy notes - SeanWu1977/Machine-Learning GitHub Wiki

# y 1d array 
# where(cond, ture value, false value)
np.where(y == ' ' ,-1 , 1)

#### 沒有ture value, false value 時,等於 numpy.nonzero(),會回傳true的index
np.where((pre != y_test) == True)



# 刪除重覆值 like sql distinct
np.unique(y)
# 將y轉為1維陣列
y.ravel()
# 產生一陣列最小值為n, 最大值不可超過m, n(next) = n(pre) + resolution 
np.arrange(n,m,resolution)
# 產生有x個值的均等陣列,最小值為n, 最為m ,前值與後值差相同
np.linspace(n,m,num=x)
# 用x,y此兩個一維陣列產生x,y矩陣
x = [1, 2, 3]
y = [0, 1]
# 可看成以下2維陣列
# 1,0  2,0  3,0
# 1,1  2,1  3,1
vx,vy = meshgrid(x,y)
vx = [1, 2, 3], [1, 2, 3](/SeanWu1977/Machine-Learning/wiki/1,-2,-3],-[1,-2,-3)  # 把2維陣列的x值取出成為vx陣列
vy = [0, 0, 0], [1, 1, 1](/SeanWu1977/Machine-Learning/wiki/0,-0,-0],-[1,-1,-1)  # 把2維陣列的y值取出成為vy陣列

# 陣列合併
np.array([A, B])
np.vstack((A, B))
A = np.array([1,1,1])
B = np.array([2,2,2])
# 以上兩個指令會產生相同結果
array([[1, 1, 1],
       [2, 2, 2]])
np.hstack((A, B))
array([1, 1, 1, 2, 2, 2])



# 陣列隨機排序
np.random.seed(n)  #當n相同,random結果會相同 
r=np.random.permutation(n) #傳回0~(n-1)隨機排序陣列 
RX=X[r]  #回傳依r所指定的順序陣列 


# 將多維陣列轉為1維陣列
x.ravel()  

# 看陣列長像
x.shape  回傳list為每一維度的長度(d1, d2, ...)

# 矩陣內積
a = numpy.array([1,2])
array([1, 2])

b = numpy.array([1,3],[2,4](/SeanWu1977/Machine-Learning/wiki/1,3],[2,4)) 
array([[1, 3],
       [2, 4]])

numpy.dot(a,b) or a.dot(b)
array([ 5, 11])
# 概念, x軸乘y軸

# 改變形狀,如果值是-1,則由程式自已算

x = x.reshape(6, 1)
x = x.reshape(-1, 1)
以上兩個結果是相同


# value(x,y) => value(y,x), 即左上右下對摺 或 是row -> column, column -> row
x = np.transpose(x)

# 找出值不為零值的index(第一個index值為0)
np.nonzero(x)
# 變形(找出值為零的index)
np.nonzero(x == 0)

# 變更值的類型
np.array().astype("int") # float,double...


# np.array().all() # 可檢查所有的值是否為 True

# get value by index
x = np.array(...)
idx = [0,2,3,..]
x[idx] ==> 得出對應idx的np.array 
### list就沒有此功能  ###