在实际操作中,遇到了矩阵堆叠的操作,本来想着自己写一个函数,后来想,应该有库函数,于是一阵找寻
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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的时候,结果如下
1
2
3
4
5
6
7
|
np.stack((a,b),axis = 1 ) 输出: array([[ 1 , 4 ], [ 2 , 5 ], [ 3 , 6 ]]) |
从效果看,相当于按照原来a的第二维度,也就是列,一列一列的取出来,按行拼成了一个矩阵。
那么,hstack()的效果能不能利用stack()实现呢?我这里是没有探索出来,欢迎知道的童靴指教,不过hstack()的效果其实和concatenate是一样的
1
2
3
|
np.concatenate((a,b)) 输出: array([ 1 , 2 , 3 , 4 , 5 , 6 ]) |
以上这篇python numpy 矩阵堆叠实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/m0_37052320/article/details/79072402