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

Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()

2016-06-30 15:29 519 查看
原文地址 http://blog.csdn.net/garfielder007/article/details/51378296
切分数据

train[:,0:2]


hstack() vstack() stack() dstack() vsplit()

hstack合并水平方向矩阵

vstack合并垂直方向矩阵

hsplit拆分水平方向矩阵呢

vsplit拆分垂直方向矩阵


感觉numpy.hstack()和numpy.column_stack()函数略有相似,numpy.vstack()与numpy.row_stack()函数也是挺像的。

stackoverflow上也有类似的讨论,在这里numpy vstack vs. column_stack

给一个相关函数的列表:

stack() Join a sequence of arrays along a new axis.

hstack() Stack arrays in sequence horizontally (column wise).

dstack() Stack arrays in sequence depth wise (along third dimension).

concatenate() Join a sequence of arrays along an existing axis.

vsplit () Split array into a list of multiple sub-arrays vertically.

一、numpy.stack()函数

函数原型:numpy.stack(arrays, axis=0)

程序实例:

[python] view
plain copy

>>> arrays = [np.random.randn(3, 4) for _ in range(10)]

>>> np.stack(arrays, axis=0).shape

(10, 3, 4)

>>>

>>> np.stack(arrays, axis=1).shape

(3, 10, 4)

>>>

>>> np.stack(arrays, axis=2).shape

(3, 4, 10)

>>>

>>> a = np.array([1, 2, 3])

>>> b = np.array([2, 3, 4])

>>> np.stack((a, b))

array([[1, 2, 3],

[2, 3, 4]])

>>>

>>> np.stack((a, b), axis=-1)

array([[1, 2],

[2, 3],

[3, 4]])

二、numpy.hstack()函数

函数原型:numpy.hstack(tup)

其中tup是arrays序列,The arrays must have the same shape, except in the dimensioncorresponding to axis (the first, by default).

等价于:np.concatenate(tup, axis=1)

程序实例:

[python] view
plain copy

>>> a = np.array((1,2,3))

>>> b = np.array((2,3,4))

>>> np.hstack((a,b))

array([1, 2, 3, 2, 3, 4])

>>> a = np.array([[1],[2],[3]])

>>> b = np.array([[2],[3],[4]])

>>> np.hstack((a,b))

array([[1, 2],

[2, 3],

[3, 4]])

三、numpy.vstack()函数

函数原型:numpy.vstack(tup)

等价于:np.concatenate(tup, axis=0) if tup contains arrays thatare at least 2-dimensional.

程序实例:

[python] view
plain copy

>>> a = np.array([1, 2, 3])

>>> b = np.array([2, 3, 4])

>>> np.vstack((a,b))

array([[1, 2, 3],

[2, 3, 4]])

>>>

>>> a = np.array([[1], [2], [3]])

>>> b = np.array([[2], [3], [4]])

>>> np.vstack((a,b))

array([[1],

[2],

[3],

[2],

[3],

[4]])

四、numpy.dstack()函数

函数原型:numpy.dstack(tup)

等价于:np.concatenate(tup, axis=2)

程序实例:

[python] view
plain copy

>>> a = np.array((1,2,3))

>>> b = np.array((2,3,4))

>>> np.dstack((a,b))

array([[[1, 2],

[2, 3],

[3, 4]]])

>>>

>>> a = np.array([[1],[2],[3]])

>>> b = np.array([[2],[3],[4]])

>>> np.dstack((a,b))

array([[[1, 2]],

[[2, 3]],

[[3, 4]]])

五、numpy.concatenate()函数

函数原型:numpy.concatenate((a1, a2, ...), axis=0)

程序实例:

[python] view
plain copy

>>> a = np.array([[1, 2], [3, 4]])

>>> b = np.array([[5, 6]])

>>> np.concatenate((a, b), axis=0)

array([[1, 2],

[3, 4],

[5, 6]])

>>> np.concatenate((a, b.T), axis=1)

array([[1, 2, 5],

[3, 4, 6]])

This function will not preserve masking of MaskedArray inputs.

>>>

>>> a = np.ma.arange(3)

>>> a[1] = np.ma.masked

>>> b = np.arange(2, 5)

>>> a

masked_array(data = [0 -- 2],

mask = [False True False],

fill_value = 999999)

>>> b

array([2, 3, 4])

>>> np.concatenate([a, b])

masked_array(data = [0 1 2 2 3 4],

mask = False,

fill_value = 999999)

>>> np.ma.concatenate([a, b])

masked_array(data = [0 -- 2 2 3 4],

mask = [False True False False False False],

fill_value = 999999)

六、numpy.vsplit()函数

函数原型:numpy.vsplit(ary, indices_or_sections)

程序实例:

[python] view
plain copy

>>> x = np.arange(16.0).reshape(4, 4)

>>> x

array([[ 0., 1., 2., 3.],

[ 4., 5., 6., 7.],

[ 8., 9., 10., 11.],

[ 12., 13., 14., 15.]])

>>> np.vsplit(x, 2)

[array([[ 0., 1., 2., 3.],

[ 4., 5., 6., 7.]]),

array([[ 8., 9., 10., 11.],

[ 12., 13., 14., 15.]])]

>>> np.vsplit(x, np.array([3, 6]))

[array([[ 0., 1., 2., 3.],

[ 4., 5., 6., 7.],

[ 8., 9., 10., 11.]]),

array([[ 12., 13., 14., 15.]]),

array([], dtype=float64)]

With a higher dimensional array the split is still along the first axis.

>>>

>>> x = np.arange(8.0).reshape(2, 2, 2)

>>> x

array([[[ 0., 1.],

[ 2., 3.]],

[[ 4., 5.],

[ 6., 7.]]])

>>> np.vsplit(x, 2)

[array([[[ 0., 1.],

[ 2., 3.]]]),

array([[[ 4., 5.],

[ 6., 7.]]])]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: