numpy-添加操作大全


合並

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.]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM