最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

numpy中數(shù)組的堆疊方法

 更新時間:2023年02月14日 09:28:56   作者:夏日輕風(fēng)有你  
本文主要介紹了numpy中數(shù)組的堆疊方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、環(huán)境 

Anaconda 3
Python 3.6
Numpy 1.14.3

二、功能用途及官方說明

1、hstack功能:沿水平方向堆疊數(shù)組(numpy array)
用途舉例:機(jī)器學(xué)習(xí)數(shù)據(jù)集準(zhǔn)備過程中,可以用于將數(shù)據(jù)列與標(biāo)簽列在水平方向上合并,從而得到帶標(biāo)簽的數(shù)據(jù)集
官方說明https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.hstack.html#numpy.hstack

2、vstack功能:沿垂直方向堆疊數(shù)組(numpy array)
用途舉例:機(jī)器學(xué)習(xí)數(shù)據(jù)集準(zhǔn)備過程中,可以用于將從過個數(shù)據(jù)文件中加載的數(shù)據(jù)行在垂直方向上合并,從而將所有數(shù)據(jù)集整合為一個數(shù)據(jù)集
官方說明https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.vstack.html

三、實(shí)例

實(shí)例一:使用 np.hstack 將數(shù)據(jù)與標(biāo)簽合并

>>> import numpy as np
# 數(shù)據(jù)準(zhǔn)備
>>> data = [i for i in range(18)]
>>> data_array = np.asarray(data)
>>> data_array = np.asarray(data).reshape([6,3])
>>> data_array.shape
(6, 3)
>>> data_array
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11],
       [12, 13, 14],
       [15, 16, 17]])
# 標(biāo)簽準(zhǔn)備
>>> label = [0, 1] *3 
>>> label_array = np.asarray(label)
>>> label_array.shape
(6,)
>>> label_array
array([0, 1, 0, 1, 0, 1])
# 在數(shù)據(jù)的右側(cè)水平方向上合并標(biāo)簽
>>> data_label = np.hstack((data_array,label_array))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/numpy/core/shape_base.py", line 288, in hstack
    return _nx.concatenate(arrs, 1)
ValueError: all the input arrays must have same number of dimensions

直觀上看, np.hstack 只要保證要合并的兩個 numpy 數(shù)組的數(shù)據(jù)行相同,那么兩個 numpy 數(shù)組的列就可以沿著水平方向合并了!這里也是初學(xué)者常遇到個一個問題,仔細(xì)看一下報錯信息就會很容易發(fā)現(xiàn),問題出在要合并的兩個 numpy 數(shù)組的維度數(shù)量不一致,data_array 的維度是二維(6, 3),而 label_array 的維度是一維 (6, ),因此即使兩個 numpy 數(shù)組的行數(shù)一樣,也不能沿水平方向進(jìn)行正常的列堆疊!
正確的方法:

# 在準(zhǔn)備標(biāo)簽時,先將一維的標(biāo)簽 reshape 為二維 numpy 數(shù)組,即 6 行 1 列
>>> label_array = label_array.reshape(-1,1)
>>> data_label = np.hstack((data_array,label_array))
>>> data_label.shape
(6, 4)
>>> data_label
array([[ 0,  1,  2,  0],
       [ 3,  4,  5,  1],
       [ 6,  7,  8,  0],
       [ 9, 10, 11,  1],
       [12, 13, 14,  0],
       [15, 16, 17,  1]])

實(shí)例二:使用 np.vstack 合并兩組數(shù)據(jù)集

# 準(zhǔn)備第一數(shù)據(jù)集
>>> import numpy as np
>>> data1 = np.random.normal(0,1,(2,5))
>>> data1.shape
(2, 5)
>>> data1
array([[-1.49100993,  0.03782522,  0.33961941, -0.64073217,  0.84000297],
       [-1.02662855, -0.91858614, -0.27410549, -0.86956142, -0.44147313]])
# 準(zhǔn)備第二個數(shù)據(jù)集
>>> data2 = np.arange(0,30,2)
>>> data2 = np.arange(0,30,2).reshape([3,5])
>>> data2.shape
(3, 5)
>>> data2
array([[ 0,  2,  4,  6,  8],
       [10, 12, 14, 16, 18],
       [20, 22, 24, 26, 28]])
# 垂直方向堆疊連個數(shù)據(jù)集
>>> data = np.vstack((data1,data2))
>>> data.shape
(5, 5)
>>> data
array([[-1.49100993,  0.03782522,  0.33961941, -0.64073217,  0.84000297],
       [-1.02662855, -0.91858614, -0.27410549, -0.86956142, -0.44147313],
       [ 0.        ,  2.        ,  4.        ,  6.        ,  8.        ],
       [10.        , 12.        , 14.        , 16.        , 18.        ],
       [20.        , 22.        , 24.        , 26.        , 28.        ]])

實(shí)例三:借助列表(list)對多個數(shù)據(jù)集進(jìn)行一次性堆疊合并
可以用于在 for / while 循環(huán)讀取數(shù)據(jù)集時,依次先將數(shù)據(jù)加入到列表(list)中,然后在多個數(shù)據(jù)集一起堆疊合并,而不用在繁瑣地使用兩兩數(shù)據(jù)集堆疊合并的方式了

# 準(zhǔn)備第一個數(shù)據(jù)集
>>> data_v1 = np.random.randint(0,10,(2,5))
>>> data_v1.shape
(2, 5)
>>> data_v1
array([[4, 4, 0, 7, 3],
       [3, 9, 0, 3, 0]])
# 準(zhǔn)備第二個數(shù)據(jù)集
>>> data_v2 = np.ones((3,5))
>>> data_v2.shape
(3, 5)
>>> data_v2
array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]])
# 準(zhǔn)備第三個數(shù)據(jù)集
>>> data_v3 = np.full((2,5),0)
>>> data_v3.shape
(2, 5)
>>> data_v3
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
# 定義一個臨時存放多個數(shù)據(jù)集的列表(list),并將所有數(shù)據(jù)集添加到列表中
>>> data_vlist = []
>>> data_vlist.append(data_v1)
>>> data_vlist.append(data_v2)
>>> data_vlist.append(data_v3)
>>> len(data_vlist)
3
>>> data_vlist
[array([[4, 4, 0, 7, 3],
       [3, 9, 0, 3, 0]]), array([[1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.]]), array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])]
# 將存放所有數(shù)據(jù)集的列表作為 np.vstack() 的輸入?yún)?shù),即可一次性合并多個數(shù)據(jù)集
>>> data_vstack = np.vstack(data_vlist)
>>> data_vstack
array([[4., 4., 0., 7., 3.],
       [3., 9., 0., 3., 0.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])
>>> data_vstack.shape
(7, 5)
>>> data_vstack
array([[4., 4., 0., 7., 3.],
       [3., 9., 0., 3., 0.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])
#########################################################

同理,np.hstack 也可以借助列表(list)一次性水平合并多個數(shù)據(jù)列

# 準(zhǔn)備首個數(shù)列
>>> import numpy as np
>>> data_h1 = np.random.randint(0, 10, (3,3))
>>> data_h1.shape
(3, 3)
>>> data_h1 
array([[6, 4, 5],
       [4, 5, 0],
       [7, 1, 9]])
# 準(zhǔn)備第二個數(shù)列
>>> data_h2 = np.zeros((3,2))
>>> data_h2.shape
(3, 2)
>>> data_h2
array([[0., 0.],
       [0., 0.],
       [0., 0.]])
# 準(zhǔn)備第三個數(shù)列
>>> data_h3 = np.ones((3,1), dtype=int)
>>> data_h3.shape
(3, 1)
>>> data_h3
array([[1],
       [1],
       [1]])
# 定義一個臨時存放多個數(shù)據(jù)列的列表(list),并將所有數(shù)據(jù)列添加到列表中
>>> data_hlist = []
>>> data_hlist.append(data_h1)
>>> data_hlist.append(data_h2)
>>> data_hlist.append(data_h3)
>>> len(data_hlist)
3
>>> data_hlist
[array([[6, 4, 5],
       [4, 5, 0],
       [7, 1, 9]]), array([[0., 0.],
       [0., 0.],
       [0., 0.]]), array([[1],
       [1],
       [1]])]
# 將存放所有數(shù)據(jù)列的列表作為 np.hstack() 的輸入?yún)?shù),即可一次性合并多個數(shù)據(jù)列
>>> data_hstack = np.hstack(data_hlist)
>>> data_hstack.shape
(3, 6)
>>> data_hstack
array([[6., 4., 5., 0., 0., 1.],
       [4., 5., 0., 0., 0., 1.],
       [7., 1., 9., 0., 0., 1.]])

到此這篇關(guān)于numpy中數(shù)組的堆疊方法的文章就介紹到這了,更多相關(guān)numpy 數(shù)組堆疊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyQt5連接MySQL及QMYSQL driver not loaded錯誤解決

    PyQt5連接MySQL及QMYSQL driver not loaded錯誤解決

    這篇文章主要介紹了PyQt5連接MySQL及QMYSQL driver not loaded錯誤解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python實(shí)現(xiàn)兩張圖片的像素融合

    python實(shí)現(xiàn)兩張圖片的像素融合

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)兩張圖片的像素融合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 詳解Python對JSON中的特殊類型進(jìn)行Encoder

    詳解Python對JSON中的特殊類型進(jìn)行Encoder

    這篇文章主要介紹了詳解Python對JSON中的特殊類型進(jìn)行Encoder,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python數(shù)據(jù)可視化之從繪制精美雷達(dá)圖的新手指南

    Python數(shù)據(jù)可視化之從繪制精美雷達(dá)圖的新手指南

    這篇文章主要為大家詳細(xì)介紹了Pytho如何繪制精美雷達(dá)圖從而實(shí)現(xiàn)數(shù)據(jù)可視化的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-11-11
  • Pycharm基本操作及調(diào)試代碼

    Pycharm基本操作及調(diào)試代碼

    最近天氣狂熱暴躁,很難靜下心來學(xué)習(xí)啦,于是給大家整理一些python開發(fā)工具pycharm基本操作及調(diào)試代碼吧,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Python?Locust搭建高性能負(fù)載測試工具

    Python?Locust搭建高性能負(fù)載測試工具

    Locust?是一個開源的、基于?Python?的負(fù)載測試工具,它允許開發(fā)者使用?Python?代碼來定義用戶行為,從而模擬真實(shí)用戶對系統(tǒng)進(jìn)行壓力測試,所以本文就來使用Locust搭建一個高性能負(fù)載測試工具吧
    2025-06-06
  • 基于python的文字轉(zhuǎn)圖片工具示例詳解

    基于python的文字轉(zhuǎn)圖片工具示例詳解

    這篇文章主要介紹了基于python的文字轉(zhuǎn)圖片工具,請求示例是使用?curl?命令請求示例,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用

    詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用

    高階函數(shù)就是能夠把函數(shù)當(dāng)成參數(shù)傳遞的函數(shù)就是高階函數(shù),換句話說如果一個函數(shù)的參數(shù)是函數(shù),那么這個函數(shù)就是一個高階函數(shù)。本文為大家詳細(xì)講解了Python中常用的四個高階函數(shù),感興趣的可以了解一下
    2022-04-04
  • 通過pykafka接收Kafka消息隊列的方法

    通過pykafka接收Kafka消息隊列的方法

    今天小編就為大家分享一篇通過pykafka接收Kafka消息隊列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python?異步等待任務(wù)集合

    Python?異步等待任務(wù)集合

    這篇文章主要為大家介紹了Python?異步等待任務(wù)集合,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評論

调兵山市| 微山县| 本溪市| 密山市| 德安县| 宜城市| 安多县| 板桥市| 乌拉特后旗| 淅川县| 卓资县| 赣州市| 岚皋县| 永吉县| 区。| 西充县| 当雄县| 白玉县| 汝阳县| 偃师市| 基隆市| 吉林市| 德兴市| 徐州市| 长沙县| 衡南县| 呼伦贝尔市| 丹东市| 遂溪县| 炉霍县| 怀化市| 东海县| 余干县| 曲靖市| 璧山县| 泊头市| 石嘴山市| 南通市| 五常市| 蕲春县| 枣阳市|