日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/21 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

感覺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)

程序實例:

>>> 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)

程序實例:

>>> 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.

程序實例:

>>> 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)

程序實例:

>>> 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)

程序實例:

>>> 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)

程序實例:

>>> 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.]]])]





參考:

numpy中的部分源碼

總結

以上是生活随笔為你收集整理的Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。