NumPy 沿不同轴将数组堆叠在一起
2017-01-17 09:53
344 查看
组合(stack)不同的数组
几种方法可以沿不同轴将数组堆叠在一起:>>> a = floor(10*random.random((2,2))) >>> a array([[ 1., 1.], [ 5., 8.]]) >>> b = floor(10*random.random((2,2))) >>> b array([[ 3., 3.], [ 6., 0.]]) >>> vstack((a,b)) array([[ 1., 1.], [ 5., 8.], [ 3., 3.], [ 6., 0.]]) >>> hstack((a,b)) array([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])
函数
column_stack以列将一维数组合成二维数组,它等同与
vstack对一维数组。
>>> column_stack((a,b)) # With 2D arrays array([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]]) >>> a=array([4.,2.]) >>> b=array([2.,8.]) >>> a[:,newaxis] # This allows to have a 2D columns vector array([[ 4.], [ 2.]]) >>> column_stack((a[:,newaxis],b[:,newaxis])) array([[ 4., 2.], [ 2., 8.]]) >>> vstack((a[:,newaxis],b[:,newaxis])) # The behavior of vstack is different array([[ 4.], [ 2.], [ 2.], [ 8.]])
row_stack函数,另一方面,将一维数组以行组合成二维数组。
对那些维度比二维更高的数组,
hstack沿着第二个轴组合,
vstack沿着第一个轴组合,
concatenate允许可选参数给出组合时沿着的轴。
Note
在复杂情况下,
r_[]和
c_[]对创建沿着一个方向组合的数很有用,它们允许范围符号(“:”):
>>> r_[1:4,0,4] array([1, 2, 3, 0, 4])
当使用数组作为参数时,
r_和
c_的默认行为和
vstack和
hstack很像,但是允许可选的参数给出组合所沿着的轴的代号。
更多函数hstack , vstack, column_stack , row_stack , concatenate , c_ , r_ 参见
NumPy示例 .
0
>>> a = floor(10*random.random((2,2)))
>>> a
array([[ 0., 5.],
[ 1., 2.]])
>>> b = floor(10*random.random((2,2)))
>>> b
array([[ 1., 6.],
[ 5., 5.]])
>>> vstack((a,b))
array([[ 0., 5.],
[ 1., 2.],
[ 1., 6.],
[ 5., 5.]])
>>> hstack((a,b))
array([[ 0., 5., 1., 6.],
[ 1., 2., 5., 5.]])
>>> column_stack((a,b))
array([[ 0., 5., 1., 6.],
[ 1., 2., 5., 5.]])
>>> a=array([4.,2.])
>>> b=array([2.,8.])
>>> a[:,newaxis]
array([[ 4.],
[ 2.]])
>>> a
array([ 4., 2.])
>>> b
array([ 2., 8.])
>>> b[:,newaxis]
array([[ 2.],
[ 8.]])
>>> column_stack((a[:,newaxis],b[:,newaxis]))
array([[ 4., 2.],
[ 2., 8.]])
>>> a=array([4.,3.])
>>> column_stack((a[:,newaxis],b[:,newaxis]))
array([[ 4., 2.],
[ 3., 8.]])
>>> vstack((a[:,newaxis],b[:,newaxis]))
array([[ 4.],
[ 3.],
[ 2.],
[ 8.]])
>>> row_stack(a,b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: vstack() takes exactly 1 argument (2 given)
>>> row_stack((a,b))
array([[ 4., 3.],
[ 2., 8.]])
>>> a
array([ 4., 3.])
>>> b
array([ 2., 8.])
>>> r_[1:4,0,4]
array([1, 2, 3, 0, 4])
>>>
相关文章推荐
- Numpy数组的保存与读取
- 将Numpy数组保存为图像
- python-numpy数组拼接方法介绍
- 从1至N中找出所有不重复加在一起等于N的数组
- Numpy —— 数组和矩阵
- numpy教程:数组创建
- 运用numpy进行数组、向量、矩阵运算
- 深入理解NumPy简明教程---数组2
- NumPy 数组矩阵运算
- numpy数组矢量化
- Python Numpy数组保存
- numpy.transpose对三维数组的转置方法
- numpy 进行数组拼接,分别在行和列上合并的实例
- Numpy数组的保存与读取
- Numpy——ndarray对象(1):创建数组
- NumPy基础 -- 1. ndarray (多维数组对象)
- Python Numpy的数组array和矩阵matrix的用法与区别
- numpy 基本的数组统计方法
- numpy 数组和矩阵的乘法的理解
- 【转】Python Numpy数组保存