婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Numpy數組的組合與分割實現的方法

Numpy數組的組合與分割實現的方法

熱門標簽:ai電話機器人哪里好 外呼并發線路 地圖標注審核表 西藏房產智能外呼系統要多少錢 湛江智能外呼系統廠家 ai電銷機器人源碼 百度地圖標注沒有了 宿遷星美防封電銷卡 長沙高頻外呼系統原理是什么

在介紹數組的組合和分割前,我們需要先了解數組的維(ndim)和軸(axis)概念。

如果數組的元素是數組,即數組嵌套數組,我們就稱其為多維數組。幾層嵌套就稱幾維。比如形狀為(a,b)的二維數組就可以看作兩個一維數組,第一個一維數組包含a個一維數組,第二個一維數組包含b個數據。

每一個一維線性數組稱為一個軸。二維數組的第一個軸(axis=0)就是以數組為元素的數組,第二個軸(axis=1)就是數組中的數組。因此第一個軸的方向就是沿著行的方向(垂直方向),第二個軸的方向沿著列的方向(水平方向)。

我們從嵌套數組的角度來看,a[0],a[1],a[2],a[3]……分別是取二維數組的第一行,二行,三行,四行……這正是先沿著第一個軸取元素(元素為行)。a[0][0],a[0][1]……則是(沿著第二個軸)取第一行的第一個元素,第二個元素……

也就是說,數組的軸從最外層數起。

三維數組我們應該怎么理解呢?我們可以把它看作二維數組的堆疊,即一個立方體。它的第一個軸(axis=0)就是以二維數組為元素的數組,它的方向沿著二維數組堆疊的方向,也就是立方體的高。第二個軸自然就是立方體的寬,第三個軸就是立方體的長。舉例來說,一個形狀為(a,b,c)的三維數組就是a個形狀為(b,c)的二維數組嵌套在一起。

a=np.arange(24).reshape(2,3,4)#建立一個維度為3,形狀為(2,3,4)的三維數組
print(a)#打印
print(a.sum(axis=0))#沿第一個軸求和
print(a.sum(axis=1))#沿第二個軸求和
print(a.sum(axis=2))#沿第三個軸求和

'''
a的形狀如下:
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
 
 沿第一個軸求和:
 [[12 14 16 18]
 [20 22 24 26]
 [28 30 32 34]]
 
 沿第二個軸求和:
 [[12 15 18 21]
 [48 51 54 57]]
 
 沿第三個軸求和:
[[ 6 22 38]
 [54 70 86]]
'''

從這個例子可以看出,沿第一個軸求和,就是從上方把這個立方體“壓扁”,第二個軸就是沿著寬,第三個軸就是沿著長。類似投影。

我們終于明白了,reshape函數的參數順序不是我們想當然認為的長,寬;長,寬,高;因為你無法解釋為什么三維數組變形后的形狀與你所想的大相徑庭。它的順序是軸的順序(第一條軸,第二條軸,第三條軸……),也就是沿這條軸有多少個元素。軸的概念很重要,在很多函數中都有體現。

再直觀一點說,參數順序應該是高,寬(行方向),長(列方向)。

所以,數組的維度就很好理解了,就是軸的數量。我們在理解多維數組的時候,不要先入為主地認為多維數組的元素會更多;多維數組只是它嵌套的層數多而已。高維數組也可能不含元素。

接下來我們介紹數組的組合。

數組的組合

數組的組合有水平組合,垂直組合,深度組合等方式。實現這些組合的函數主要有vstack,dstack,hstack,column_stack,row_stack,concatenate等。

因為我們最常用的數組也不過三維,所以用水平,垂直這樣的字眼比較形象;但我們要明白,本質上是沿軸進行的操作。

數組組合通常不會改變數組的維度。

1.水平組合

hstack函數與concatenate函數

1.1hstack函數:水平連接多個數組。參數只有一個:以數組為元素的序列。

1.2concatenate函數:沿著現有的軸連接數組序列。

函數格式:concatenate((a1, a2, ...), axis=0, out=None)

參數說明:a1, a2, ...:為以數組為元素的類數組序列。其中數組形狀必須相同。

                  axis=0:數組將沿著這個軸組合,如果坐標軸為None,數組在使用前被平鋪。int型數據,可選參數,默認為零。

2.垂直組合

vstack函數與concatenate函數

2.1vstack函數:垂直連接多個數組。參數如上。

2.2concatenate函數:改一下軸參數就好。

水平組合和垂直組合是比較直觀的說法,因為我們用的最多的數組就是一維和二維;實際上,它們分別是沿著第二條軸(水平),第一條軸(垂直)進行組合。

a=np.array([1])
a=a.reshape(1,1,1,1,1)#只有一個元素的五維數組
b=np.array([1])
b=b.reshape(1,1,1,1,1)#與a完全相同
c=np.hstack((a,b))#水平組合
d=np.vstack((a,b))#垂直組合
print(c)
print(d)
print(c.shape)
print(d.shape)

'''
水平組合
[[[[[1]]]


  [[[1]]]]]
  
垂直組合  
[[[[[1]]]]

 [[[[1]]]]]
 
c的形狀
(1, 2, 1, 1, 1) 

d的形狀
(2, 1, 1, 1, 1)
'''

3.行組合和列組合

3.1row_stack函數:行組合

將一維數組按行方向組合起來,對于二維數組完全等同于vstack。對于多維數組,實際上就是沿第一個軸進行組合。

3.2colum_stack函數:列組合

將一維數組按列方向組合起來,對于二維數組完全等同于hstack。對于多維數組,實際上就是沿第二個軸進行組合。

a=np.array([0,1,2])
b=np.array([1,2,3])
c=np.row_stack((a,b))
d=np.column_stack((a,b))
print(c)
print(d)

'''
行組合
[[0 1 2]
 [1 2 3]]

列組合
[[0 1]
 [1 2]
 [2 3]]

'''

a=np.array([0,1,2]).reshape(1,1,1,1,3)
b=np.array([1,2,3]).reshape(1,1,1,1,3)
c=np.row_stack((a,b))
d=np.column_stack((a,b))
print(c)
print(d)
print(c.shape)
print(d.shape)

'''
行組合
[[[[[0 1 2]]]]

 [[[[1 2 3]]]]]
[[[[[0 1 2]]]

列組合
  [[[1 2 3]]]]]
  
c形狀
(2, 1, 1, 1, 3)
d形狀
(1, 2, 1, 1, 3)

'''

4.深度組合

沿著第三個軸進行組合。

a=np.array([0,1,2])
b=np.array([1,2,3])
c=np.dstack((a,b))#深度組合
print(c)
print(a.shape)
print(c.shape)

'''
[[[0 1]
  [1 2]
  [2 3]]]
(3,)
(1, 3, 2)
'''

a=np.array([0,1,2]).reshape(1,1,1,3)
b=np.array([1,2,3]).reshape(1,1,1,3)
c=np.dstack((a,b))
print(c.shape)

'''
(1, 1, 2, 3)
'''

當數組維度比較小的時候,比如一維和二維,如果組合時沒有第二和第三參數,函數會自動為其在形狀左側補1,也就是拓展一層。這和之前說過的廣播機制十分類似。 

數組的分割

數組可以進行水平,垂直等方式進行分割。相關函數:hsplit,vsplit,dsplit,split。

我們可以將數組分割成相同大小(形狀)的子數組,也可以指定分割的位置。

1.水平分割

hsplit函數和split函數。

沿水平方向,就是沿列方向,沿第二條軸(axis=1)方向。

1.1hsplit函數

格式:hsplit(ary, indices_or_sections)

第一個參數是數組;第二個參數是一個整數或列表,如果不指定,就會分割成相同大小的子數組。

a=np.arange(16).reshape(4,4)
pp.pprint(a)
pp.pprint(np.hsplit(a,2))#平均分割成兩部分
pp.pprint(np.hsplit(a,[2,3]))#沿第二,三列,分割成三部分


'''
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
       
分割成兩部分
[array([[ 0,  1],
       [ 4,  5],
       [ 8,  9],
       [12, 13]]),
 array([[ 2,  3],
       [ 6,  7],
       [10, 11],
       [14, 15]])]
       
分割成三部分
[array([[ 0,  1],
       [ 4,  5],
       [ 8,  9],
       [12, 13]]),
 array([[ 2],
       [ 6],
       [10],
       [14]]),
 array([[ 3],
       [ 7],
       [11],
       [15]])]
'''

1.2split函數

函數格式:split(ary, indices_or_sections, axis=0)

第一個參數:數組。

第二個參數:整數或列表,可選參數。

第三個參數:軸,可選參數。

a=np.arange(24).reshape(4,6)
print(a)
pp.pprint(np.split(a,[2],axis=0))

'''

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]
[array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11]]),
 array([[12, 13, 14, 15, 16, 17],
       [18, 19, 20, 21, 22, 23]])]

'''

上面這個例子里,我們選擇了第一條軸,也就是列方向。然后找到第二行一分為二。

a=np.arange(24).reshape(2,3,4)
print(a)
pp.pprint(np.split(a,[1],axis=0))#沿第一條軸,高
pp.pprint(np.split(a,[1],axis=1))#沿第二條軸,寬
pp.pprint(np.split(a,[1],axis=2))#沿第三條軸,長

'''

[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
  
[array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]]]),
 array([[[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])]
        
        
[array([[[ 0,  1,  2,  3]],

       [[12, 13, 14, 15]]]),
 array([[[ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[16, 17, 18, 19],
        [20, 21, 22, 23]]])]
        
        
[array([[[ 0],
        [ 4],
        [ 8]],

       [[12],
        [16],
        [20]]]),
 array([[[ 1,  2,  3],
        [ 5,  6,  7],
        [ 9, 10, 11]],

       [[13, 14, 15],
        [17, 18, 19],
        [21, 22, 23]]])]
'''

上面是一個三維數組切割的例子。

2.垂直分割

vsplit函數和split函數

沿垂直方向,就是沿行方向,沿第一條軸(axis=0)方向。

split函數如上,改一條軸參數即可。

3.深度分割

dsplit函數

主要用于三維數組,其實就是沿第三條軸切割,就好比從上方切蛋糕一樣。

a=np.arange(24).reshape(2,3,4)
b=np.dsplit(a,4)#把這個蛋糕從上切成四份
pp.pprint(b)

'''
[array([[[ 0],
        [ 4],
        [ 8]],

       [[12],
        [16],
        [20]]]),
 array([[[ 1],
        [ 5],
        [ 9]],

       [[13],
        [17],
        [21]]]),
 array([[[ 2],
        [ 6],
        [10]],

       [[14],
        [18],
        [22]]]),
 array([[[ 3],
        [ 7],
        [11]],

       [[15],
        [19],
        [23]]])]

'''

到此這篇關于Numpy數組的組合與分割實現的方法的文章就介紹到這了,更多相關Numpy數組組合與分割內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python numpy--數組的組合和分割實例

標簽:普洱 寧夏 海南 漯河 大同 盤錦 林芝 南平

巨人網絡通訊聲明:本文標題《Numpy數組的組合與分割實現的方法》,本文關鍵詞  Numpy,數組,的,組合,與,分割,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Numpy數組的組合與分割實現的方法》相關的同類信息!
  • 本頁收集關于Numpy數組的組合與分割實現的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久精品亚洲精品国产欧美kt∨| 极品少妇一区二区三区精品视频| 午夜不卡av在线| 国产在线国偷精品产拍免费yy| 国产一区二区三区四区五区入口| 欧美性色欧美a在线播放| 久久久久久99精品| 日韩精品亚洲专区| 色综合一个色综合| 国产精品国产三级国产| 国产一区二区三区不卡在线观看 | 成人免费视频一区二区| 欧洲精品一区二区三区在线观看| 日本一区二区三级电影在线观看 | 国产风韵犹存在线视精品| 欧美日韩一区二区三区在线看| 亚洲人成网站精品片在线观看| 国产老妇另类xxxxx| 精品视频在线看| 国产精品系列在线| 亚洲久草在线视频| 粉嫩aⅴ一区二区三区四区| 日韩一区二区不卡| 亚洲成人动漫av| 成人午夜视频免费看| 国产精品第五页| 不卡视频一二三| 亚洲精品一区二区三区影院| 日韩av午夜在线观看| 777欧美精品| 日日夜夜精品视频天天综合网| 色呦呦网站一区| 亚洲免费在线观看| 欧美日韩国产色站一区二区三区| 亚洲gay无套男同| 欧美在线制服丝袜| 夜夜精品浪潮av一区二区三区| 久久这里只有精品首页| 久久久亚洲午夜电影| 蜜臀久久久久久久| 日韩欧美国产一区二区三区| 久久精工是国产品牌吗| 久久se精品一区二区| 不卡一区二区三区四区| 亚洲国产成人av网| 91国产精品成人| 国产呦萝稀缺另类资源| 国产精品一区二区视频| 亚洲成人动漫一区| 午夜视频久久久久久| 久久精品国产第一区二区三区| 狠狠色丁香婷综合久久| 欧美疯狂性受xxxxx喷水图片| 91精品综合久久久久久| 亚洲国产sm捆绑调教视频 | 欧美又粗又大又爽| 一区二区三区精密机械公司| 在线观看亚洲精品视频| 成人91在线观看| 亚洲午夜精品网| 精品久久久久久久久久久久久久久久久| 4438亚洲最大| 中文字幕在线不卡国产视频| 欧美伊人久久久久久午夜久久久久| 亚洲国产精品国自产拍av| 国产喷白浆一区二区三区| 欧美女孩性生活视频| 亚洲激情在线激情| 激情伊人五月天久久综合| 久久综合色天天久久综合图片| 成人美女视频在线观看| 亚洲精品日韩综合观看成人91| 麻豆一区二区99久久久久| 久久久不卡网国产精品二区 | 丁香桃色午夜亚洲一区二区三区| 国产精品天天看| 亚洲欧洲综合另类| 日韩视频在线一区二区| 日本视频中文字幕一区二区三区| 久久综合成人精品亚洲另类欧美| 亚洲制服丝袜av| 日韩精品一区二区三区四区视频| 久久国产精品99久久人人澡| 成人午夜av电影| 日本在线不卡一区| 国产精品全国免费观看高清| 欧美男男青年gay1069videost| 一区二区三区欧美| 欧美三级视频在线观看| 精品一区二区久久| 欧美肥胖老妇做爰| 粉嫩一区二区三区性色av| 久久精品久久99精品久久| 欧美一区中文字幕| 国产精品久久久久一区二区三区 | 免费视频最近日韩| 国产精品66部| 麻豆精品一区二区三区| 2020国产精品| 在线播放/欧美激情| 国产精品麻豆视频| 欧美精品一区二区三区在线| 99久久婷婷国产综合精品电影| 日本电影亚洲天堂一区| 韩国成人精品a∨在线观看| 中文字幕一区二区三| 精品视频一区 二区 三区| 国产精品视频线看| 欧美va在线播放| 91国偷自产一区二区三区成为亚洲经典| 亚洲三级免费观看| 91色视频在线| 国产亚洲精品资源在线26u| 欧美精品久久久久久久多人混战| 久久午夜国产精品| 精品嫩草影院久久| 亚洲一区在线看| 精品国产露脸精彩对白| 精品国产免费一区二区三区四区 | 欧美丰满一区二区免费视频| 色综合中文字幕国产 | 麻豆国产91在线播放| 国产在线播放一区三区四| 久久国产夜色精品鲁鲁99| 美女视频黄频大全不卡视频在线播放| 亚洲精品久久7777| 一区二区欧美精品| 日韩亚洲电影在线| 国产精品电影一区二区三区| 日韩色在线观看| 久久er99热精品一区二区| 日韩黄色一级片| 综合欧美亚洲日本| 欧美午夜片在线看| 国产在线国偷精品免费看| 国产日韩欧美高清| 91精品国产综合久久国产大片| 欧美国产国产综合| 国产亚洲一二三区| 欧美福利一区二区| 成人国产在线观看| 欧美性大战久久久久久久蜜臀| 三级久久三级久久| 蜜桃视频免费观看一区| 精品一区二区三区av| 一级中文字幕一区二区| 国产三级精品三级| 五月开心婷婷久久| 亚洲欧美日韩综合aⅴ视频| 欧美午夜电影网| 91精品国产综合久久国产大片| 日韩一区二区在线观看视频播放| 欧美一区国产二区| 日韩一区二区视频| 国产高清无密码一区二区三区| 亚洲第四色夜色| 粉嫩av亚洲一区二区图片| 精品无人码麻豆乱码1区2区 | 欧美韩日一区二区三区| 精品国产免费久久| 精品电影一区二区| 久久综合久久鬼色中文字| 欧美一卡在线观看| 国产夜色精品一区二区av| 中文字幕巨乱亚洲| 大桥未久av一区二区三区中文| 青青青爽久久午夜综合久久午夜| 成人欧美一区二区三区视频网页| 亚洲主播在线观看| 亚洲国产精品一区二区尤物区| 国产欧美日韩精品一区| 日韩一区日韩二区| 亚洲欧美日韩国产综合在线| 老司机免费视频一区二区 | 欧美一级一区二区| 国产麻豆精品95视频| 夜夜亚洲天天久久| 国产资源精品在线观看| 亚洲制服丝袜av| 国产精品久久久久久亚洲毛片 | 久久久影视传媒| 国产一区二区影院| 美女一区二区久久| 欧美二区乱c少妇| 国产精品素人视频| 蜜桃久久av一区| 欧洲一区二区三区在线| 欧美一区二区三区在| 久久久精品影视| 欧美午夜理伦三级在线观看| 这里只有精品99re| 欧美高清视频不卡网| 日本一区二区在线不卡| 蜜臀av性久久久久蜜臀av麻豆| 男人的天堂久久精品| 欧美日韩久久一区| 欧美一区二区免费观在线| 欧美视频一区二区三区四区| 7777精品伊人久久久大香线蕉 | 欧美日本韩国一区二区三区视频|