合並
hstack(tup):按行合並 【前面有個 h,可以理解為 行,這樣方便記憶】
vstack(tup):按列合並
參數雖然是 tuple,但是 list 也行,可以合並2個或者多個數組。
a=np.floor(10*np.random.rand(2,2)) b=np.floor(10*np.random.rand(2,2)) ### hstack()在行上合並 np.hstack((a,b)) # array([[ 8., 5., 1., 9.], # [ 1., 6., 8., 5.]]) #### vstack()在列上合並 np.vstack((a,b)) # array([[ 8., 5.], # [ 1., 6.], # [ 1., 9.], # [ 8., 5.]]) print np.vstack([a,b,b]) # list 參數 # [[ 1. 4.] a # [ 9. 5.] # [ 7. 6.] b # [ 2. 9.] # [ 7. 6.] b # [ 2. 9.]]
追加
append(arr, values, axis=None):可以追加數組,也可以追加數字,追加數組相當於合並。
arr 分為一維和二維
一維:只有一個方向,故只能在一個維度上追加
二維:兩個二維數組,拼接方向上 shape 必須一致
二者皆可追加數字,不管前面的shape是什么,注意輸出都是一維數組。
二維1表示按行拼接,0表示按列拼接,不好記,到時候試試算了。
## 一維 # 一維相當於只有一個維度,故不能在另一個維度上操作 y = np.array([1, 2]) z = np.array([3, 4]) out1 = np.append(y, z, axis=0) print(out1) # [1 2 3 4] # out2 = np.append(y, z, axis=1) # numpy.AxisError: axis 1 is out of bounds for array of dimension 1 # print(out2) # 直接拼數字 print np.append(y, 3) # [1 2 3] ## 二維 y = np.array([[1, 2]]) z = np.array([[3, 4]]) out3 = np.append(y, z, axis=0) print(out3) # [[1 2] # [3 4]] out4 = np.append(y, z, axis=1) print(out4) # [[1 2 3 4]] m = np.array([[3, 4, 5]]) out5 = np.append(y, m, axis=1) # [[1 2 3 4 5]] print(out5) # 直接拼數字,輸出為一維 print np.append(y, 3) # [1 2 3] print np.append(np.empty([0, 0]), 3) # [3.]