np.c_和np.r_的使用說明(功能和hstack、vstack一樣)


先說結論

np.r_是按行方向擴展連接兩個矩陣(row的縮寫r),就是把兩矩陣上下相加,要求列數相等。作用等同於 vstack 函數

np.c_是按列方向擴展連接兩個矩陣(column的縮寫c),就是把兩矩陣左右相加,要求行數相等。作用等同於 hstack 函數

測試代碼

import numpy as np

z = np.random.randint(10, 20, (3, 3))
k = np.random.randint(1, 10, (3, 3))
print(z)
print(k)
print("列方向擴展連接(hstack函數)", '\n', np.hstack([z, k]))    
print("行方向擴展連接(vstack函數)", '\n', np.vstack([z, k]))
print("列方向擴展連接(c_)", '\n', np.c_[z, k])   
print("行方向擴展連接(r_)", '\n', np.r_[z, k])

結果示意

[[13 18 19]
 [13 12 19]
 [10 11 17]]
[[9 6 4]
 [1 5 7]
 [1 4 8]]
列方向擴展連接(hstack函數)
 [[13 18 19  9  6  4]
 [13 12 19  1  5  7]
 [10 11 17  1  4  8]]
行方向擴展連接(vstack函數)
 [[13 18 19]
 [13 12 19]
 [10 11 17]
 [ 9  6  4]
 [ 1  5  7]
 [ 1  4  8]]
列方向擴展連接(c_)
 [[13 18 19  9  6  4]
 [13 12 19  1  5  7]
 [10 11 17  1  4  8]]
行方向擴展連接(r_)
 [[13 18 19]
 [13 12 19]
 [10 11 17]
 [ 9  6  4]
 [ 1  5  7]
 [ 1  4  8]]

功能上 np.r_ 等同於 hstack 函數,np.c_ 等同於 vstack 函數

注意一點是

調用時 hstack 函數 vstack 函數是np.hstack([a,b])np.vstack([a,b]) 它倆是函數,有小括號。

而 r_ 、 c_ 在調用時是np.r_[a, b]np.c_[a, b] 沒用小括號,說明它倆不是函數

使用時注意兩者區別

官方文檔也說了,它倆不是函數

在這里插入圖片描述


免責聲明!

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



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