千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 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默認將沿著第一個維度(即axis=0)進行連接。

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

當輸入參數(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)

輸出結果為:

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

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

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

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("沿第一個軸連接結果:\n", result1)
print("沿第三個軸連接結果:\n", result2)

輸出結果為:

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

 [[ 5  6]
  [ 7  8]]

 [[ 9 10]
  [11 12]]

 [[13 14]
  [15 16]]]

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

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

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

在進行大量數(shù)組連接操作時,numpy會創(chuàng)建一個新的數(shù)組來存儲最終結果,這將導致不必要的內存復制。可以通過指定參數(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)

輸出結果為:

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

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

除了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)

輸出結果為:

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

六、總結

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

tags: numpyconcat
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
在线看片免费人成视频手机观看 | 自拍亚洲日韩一区 | 夜夜爽太视频精品 | 五月婷之久久综合丝袜美腿 | 亚洲欧美一区二区骚虎 | 亚洲中文字幕免费 |