Python 水平垂直连接矩阵/数组

Posted Z.Q.Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 水平垂直连接矩阵/数组相关的知识,希望对你有一定的参考价值。

文章目录


一、前言

Python 的 numpy 数组或矩阵并不能像 MATLAB 一样的使用 [a b][a; b] 的形式连接起来,例如如下两个数组:

import numpy as np
a = np.zeros([3, 4])
b = np.ones([3, 4])

若使用 [a, b] 连接,效果如下:

In [1]: [a, b]
Out[1]: 
[array([[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]]),
 array([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])]

其由 np.ndarray 对象转变为了 list 对象,不是我们的本意。


二、水平连接矩阵、数组

水平连接数组:

np.hstack([a, b])

输出如下:

In [2]: np.hstack([a, b])
Out[2]: 
array([[0., 0., 0., 0., 1., 1., 1., 1.],
       [0., 0., 0., 0., 1., 1., 1., 1.],
       [0., 0., 0., 0., 1., 1., 1., 1.]])

这里的 a, b 既可以为数组对象,也可以是矩阵对象。


三、垂直连接矩阵、数组

垂直连接数组:

np.vstack([a, b])

输出如下:

In [3]: np.vstack([a, b])
Out[3]: 
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])

同理,这里的 a, b 既可以为数组对象,也可以是矩阵对象。


四、总结

无。

以上是关于Python 水平垂直连接矩阵/数组的主要内容,如果未能解决你的问题,请参考以下文章

数组应该被认为是水平结构还是垂直结构

垂直和水平连接numpy数组

在矩阵中找到水平或垂直放置的向量

对角线、垂直线和水平线搜索矩阵形成一个点

MATLAB中如何定义多维矩阵

如何垂直而不是水平地制作点(graphviz)布局未连接的节点?