Numpy 拼接陣列的各種方式

2021-10-05 16:19:41 字數 3333 閱讀 8238

總結

>>> import numpy as np

>>> a = np.array([1, 2, 3])

>>> b = np.array([5, 6, 7])

# 拼接乙個陣列和數值

array([1, 2, 3, 4])

# 拼接兩個陣列

array([1, 2, 3, 5, 6, 7])

# 拼接列表成為陣列

array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 不同座標軸方向的拼接

array([[1, 2, 3],

[4, 5, 6],

[7, 8, 9]])

>>> c = np.array([[1, 3, 5]])

>>> d = np.array([[2, 4, 6]])

array([1, 3, 5, 2, 4, 6])

array([[1, 3, 5],

[2, 4, 6]])

array([[1, 3, 5, 2, 4, 6]])

其中a1,a2,…是陣列型別的引數,傳入的陣列必須具有相同的形狀。

axis 指定拼接的方向,預設axis = 0(逐行拼接)(縱向的拼接沿著axis= 1方向)。

如果 axis=none,則陣列會被展開為一維。

>>> a = np.array([[1, 2], [3, 4]])

>>> a

array([[1, 2],

[3, 4]])

>>> b = np.array([[5, 6], [7, 8]])

>>> b

array([[5, 6],

[7, 8]])

>>> np.concatenate((a, b), axis=0)

array([[1, 2],

[3, 4],

[5, 6],

[7, 8]])

>>> np.concatenate((a, b.t), axis=1)

array([[1, 2, 5, 7],

[3, 4, 6, 8]])

>>> np.concatenate((a, b), axis=none)

array([1, 2, 3, 4, 5, 6, 7, 8])

在乙個新的軸方向上堆疊陣列,其中 hstack() 在水平方向堆疊,vstack() 在豎直方向堆疊。

>>> a = np.array([1, 2, 3])

>>> b = np.array([2, 3, 4])

>>> np.stack((a, b)) # 預設axis=0,np.stack((a, b), axis=0)

array([[1, 2, 3],

[2, 3, 4]])

>>> np.vstack((a, b))

array([[1, 2, 3],

[2, 3, 4]])

>>> np.hstack((a, b))

array([1, 2, 3, 2, 3, 4])

>>> np.stack((a, b), axis=-1)

array([[1, 2],

[2, 3],

[3, 4]])

>>> np.stack(([1, 2, 3], [4, 5, 6]), axis=0)

array([[1, 2, 3],

[4, 5, 6]])

以索引的方式拼接陣列

>>> m = np.array([[1, 2], [3, 4]])

>>> m

array([[1, 2],

[3, 4]])

>>> n = np.array([[5, 6], [7, 8]])

>>> n

array([[5, 6],

[7, 8]])

>>> np.r_[m, n] # 與 np.concatenate((m, n)),np.vstack((m, n)) 等價

array([[1, 2],

[3, 4],

[5, 6],

[7, 8]])

>>> np.c_[m, n] # 與 np.concatenate((m, n), axis=1),np.hstack((m, n)) 等價

array([[1, 2, 5, 6],

[3, 4, 7, 8]])

# 還可以使用字串描述拼接方式

>>> a = np.array([[0, 1, 2], [3, 4, 5]])

>>> np.r_['-1', a, a] # 最後的乙個軸方向拼接

array([[0, 1, 2, 0, 1, 2],

[3, 4, 5, 3, 4, 5]])

>>> np.r_['0,2', [1,2,3], [4,5,6]] # 第乙個軸方向拼接,與 np.stack(([1, 2, 3], [4, 5, 6]), axis=0) 等價

array([[1, 2, 3],

[4, 5, 6]])

>>> np.r_['0,2,0', [1,2,3], [4,5,6]]

array([[1],

[2],

[3],

[4],

[5],

[6]])

>>> np.r_['1,2,0', [1,2,3], [4,5,6]] # 與 np.stack(([1, 2, 3], [4, 5, 6]), axis=1) 等價

array([[1, 4],

[2, 5],

[3, 6]])

array([[1, 2, 3],

[4, 5, 6]])

輸出形式2:

array([[1, 4],

[2, 5],

[3, 6]])

>>> m = np.array([[1, 2], [3, 4]])

>>> m

array([[1, 2],

[3, 4]])

>>> n = np.array([[5, 6], [7, 8]])

>>> n

array([[5, 6],

[7, 8]])

array([[1, 2, 5, 6],

[3, 4, 7, 8]])

豎直拼接,輸出為:

array([[1, 2],

[3, 4],

[5, 6],

[7, 8]])

numpy 陣列的拼接

一 陣列的拼接 1 水平拼接 a 格式 np.hstack 陣列1,陣列2 注意 值是元祖 0軸長要相同 b 例子 import numpy as np arr1 np.arange 0,12 reshape 2,6 arr2 np.arange 12,22 reshape 2,5 arr3 np....

vmware,qemu各種方式上網設定

vmware三種網路連線,qemu兩種網路連線實現 虛擬機器 主機 虛擬機器 網際網路通訊的方法。順便寫了下如何不重新編譯整個核心支援某個功能,對系統無影響,編譯速度要快於編譯整個核心。如果你的 卡沒被核心支援,又怕自己編譯的核心會造成系統損壞就可以試試這個方法嘍 vmware三種網路連線上網設定 ...

java獲取路徑的各種方式

利用system.getproperty 函式獲取當前路徑 system.out.println system.getproperty user.dir 指定了當前的路徑使用file提供的函式獲取當前路徑 file directory newfile 設定為當前資料夾 trycatch except...