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

先说结论

np.r_是按行方向扩展连接两个矩阵(row的缩写r),就是把两矩阵上下相加,要求列数相等。作用等同于 hstack 函数

np.c_是按列方向扩展连接两个矩阵(column的缩写c),就是把两矩阵左右相加,要求行数相等。作用等同于 vstack 函数

测试代码

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] 没用小括号,说明它俩不是函数

使用时注意两者区别

官方文档也说了,它俩不是函数

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43657442/article/details/108030183
今日推荐