国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Numpy Concat詳解

Numpy Concat詳解

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-23 11:23:38 1700709818

一、concat函數(shù)介紹

在numpy中,concat函數(shù)可以用于沿特定軸連接兩個或多個數(shù)組。

np.concatenate((a1, a2, ...), axis=0, out=None)

參數(shù)axis指示了沿哪個軸連接數(shù)組。如果沒有指定,np.concatenate默認(rèn)將沿著第一個維度(即axis=0)進(jìn)行連接。

二、在第一個軸上連接數(shù)組

當(dāng)輸入?yún)?shù)里所有數(shù)組的shape在第一個軸上的大小相同時,我們可以通過np.concatenate將它們在第一個軸上連接起來。

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
arr3 = np.array([[9, 10], [11, 12]])

result = np.concatenate((arr1, arr2, arr3))
print(result)

輸出結(jié)果為:

[[ 1  2]
 [ 3  4]
 [ 5  6]
 [ 7  8]
 [ 9 10]
 [11 12]]

三、在其他軸上連接數(shù)組

當(dāng)我們需要連接的數(shù)組shape不同的軸時,可以通過np.concatenate指定軸號,來沿其他軸對數(shù)組進(jìn)行連接。

arr1 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
arr2 = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])

# 沿第一個軸連接
result1 = np.concatenate((arr1, arr2), axis=0)

# 沿第三個軸連接
result2 = np.concatenate((arr1, arr2), axis=2)

print("沿第一個軸連接結(jié)果:\n", result1)
print("沿第三個軸連接結(jié)果:\n", result2)

輸出結(jié)果為:

沿第一個軸連接結(jié)果:
 [[[ 1  2]
  [ 3  4]]

 [[ 5  6]
  [ 7  8]]

 [[ 9 10]
  [11 12]]

 [[13 14]
  [15 16]]]

沿第三個軸連接結(jié)果:
 [[[ 1  2  9 10]
  [ 3  4 11 12]]

 [[ 5  6 13 14]
  [ 7  8 15 16]]]

四、使用out參數(shù)避免數(shù)組復(fù)制

在進(jìn)行大量數(shù)組連接操作時,numpy會創(chuàng)建一個新的數(shù)組來存儲最終結(jié)果,這將導(dǎo)致不必要的內(nèi)存復(fù)制。可以通過指定參數(shù)out來避免這種情況。

x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
z = np.array([7, 8, 9])

# 指定輸出數(shù)組
out = np.zeros(9)
np.concatenate([x, y, z], out=out)
print(out)

輸出結(jié)果為:

[1. 2. 3. 4. 5. 6. 7. 8. 9.]

五、使用stack函數(shù)進(jìn)行堆疊操作

除了concatenate函數(shù),numpy還提供了stack函數(shù),不同之處在于,stack函數(shù)會將輸入的數(shù)組沿新的軸方向堆疊起來。

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.array([7, 8, 9])

# 沿新軸(第一軸)方向堆疊數(shù)組
result = np.stack((arr1, arr2, arr3))
print(result)

輸出結(jié)果為:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

六、總結(jié)

Numpy的concatenate函數(shù)提供了沿特定軸連接兩個或多個數(shù)組的功能。通過指定參數(shù)axis可以選擇不同軸向進(jìn)行連接。如果需要避免不必要的內(nèi)存復(fù)制,可以使用參數(shù)out來指定輸出數(shù)組。stack函數(shù)則提供了將輸入的數(shù)組沿新的軸方向堆疊起來的功能。

tags: numpyconcat
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT