您的位置:首页 > 编程语言 > Python开发

python numpy 矩阵堆叠

2018-01-16 11:02 711 查看
在实际操作中,遇到了矩阵堆叠的操作,本来想着自己写一个函数,后来想,应该有库函数,于是一阵找寻

import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.stack((a,b)) #默认行堆叠
输出:
array([[1, 2, 3],
[4, 5, 6]])

np.vstack((a, b))
输出:
array([[1, 2, 3],
[4, 5, 6]])
np.hstack((a, b))
输出:
array([1, 2, 3, 4, 5, 6])


简单解释一下上面的代码:其实主要是一个函数,stack(),这个函数其实包含了各种堆叠方式,我们上面的例子是针对二维矩阵的,其实我们大部分时候的操作都是针对二维矩阵的,为了方便,所以又定义了两个函数
vstack()
进行垂直的堆叠(vertically ),
hstack()
进行水平堆叠(horizontally)

函数
stack()
有个参数,axis,可以设置堆叠的维度,默认是0,其实和
vstack()
是一个效果,当设置成1的时候,结果如下

np.stack((a,b),axis=1)
输出:
array([[1, 4],
[2, 5],
[3, 6]])


从效果看,相当于按照原来a的第二维度,也就是列,一列一列的取出来,按行拼成了一个矩阵。

那么,
hstack()
的效果能不能利用
stack()
实现呢?我这里是没有探索出来,欢迎知道的童靴指教,不过
hstack()
的效果其实和
concatenate
是一样的

np.concatenate((a,b))
输出:
array([1, 2, 3, 4, 5, 6])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python