国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Numpy中stack(),hstack(),vstack()函數用法介紹及實例

2020-02-16 11:33:58
字體:
來源:轉載
供稿:網友

1.stack()函數

函數原型為:stack(arrays,axis=0),arrays可以傳數組和列表。axis的含義我下面會講解,我們先來看個例子,然后我會分析輸出結果。

import numpy as npa=[[1,2,3], [4,5,6]]print("列表a如下:")print(a)print("增加一維,新維度的下標為0")c=np.stack(a,axis=0)print(c)print("增加一維,新維度的下標為1")c=np.stack(a,axis=1)print(c)輸出:列表a如下:[[1, 2, 3], [4, 5, 6]]增加一維,新維度下標為0[[1 2 3] [4 5 6]]增加一維,新維度下標為1[[1 4] [2 5] [3 6]]

首先這里arrays我傳的是一個列表,現在我開始講解這個stack()函數的意思,它就是對arrays里面的每個元素(可能是個列表,元組,或者是個numpy的數組)變成numpy的數組后,再對每個元素增加一維(至于維度加在哪里,是靠axis控制的),然后再把這些元素串起來(至于怎么串,我下面會說)。

arrays里面的每個元素必須形狀是一樣的,例如本例中列表a中的兩個元素[1,2,3]和[4,5,6]的形狀是一樣的,如果把[4,5,6]換成[4,5] ,那么程序會報錯!而axis代表的是在哪個維度上加一維,例如axis=0(它是默認的)代表的就是增加的這一維的下標為0,axis等于多少不是隨便亂寫的,如果參數arrays里面的每個元素是個1維的,那么調用stack()函數增加一維后會變成2維的,所以axis只能等于0和1(維度的下標是從0開始的),而參數axis=0和axis=1得到的結果是不一樣的。

例如上面的代碼中a列表中的第一個元素為[1,2,3],那么當axis=0的時候,就是在它的中括號外面再加一個中括號,變成[ [1,2,3] ](其實1,2,3之間是沒有逗號的,因為stack()函數會先把參數arrays中的每個元素變成numpy的數組,數組之間是沒有逗號的,看看上面的代碼輸出就知道了,這里大家明白就行,我為了方便講解,下面還會加上逗號),這樣最外面那層中括號才代表維度下標為0的那維;當axis=1的時候,就是在里面加個中括號,變成了[ [1],[2],[3] ],這樣里面加的那層中括號才代表維度下標為1的那維。同理當axis=0的時候[4,5,6]變成[ [ 4,5,6] ],當axis=1的時候,變成[ [4],[5],[6] ]。下面我們講如何把增加一維度后的每個元素串起來。

怎么把上面那兩個元素增加維度后的結果串起來呢,其實很簡單。現在我們已經知道了增加維度無非是增加中括號的意思,至于在哪里加中括號,取決于axis等于幾。我們把增加的中括號想像成一個個的箱子。還拿上面的代碼來說,當axis=0的時候,我們把套在[1,2,3]外面的中括號(就是[ [1,2,3] ]最外層的那個中括號)看做是箱子A,這個箱子A也會套在[4,5,6]的外面,所以我們就先把[1,2,3]和[4,5,6]放在一起,變成[1,2,3],[4,5,6],然后再一起套上箱子A,變成[ [1,2,3],[4,5,6] ]這就是當axis=0的時候程序的輸出結果。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉兴市| 南乐县| 章丘市| 寿阳县| 且末县| 临洮县| 昭觉县| 多伦县| 松滋市| 建宁县| 温宿县| 枣庄市| 景德镇市| 嘉黎县| 湘西| 堆龙德庆县| 阜南县| 乌鲁木齐市| 西盟| 鹤壁市| 高平市| 本溪市| 特克斯县| 汤阴县| 祥云县| 兴城市| 柳河县| 闽清县| 宁武县| 仙居县| 琼中| 井研县| 深圳市| 临桂县| 积石山| 南陵县| 天峨县| 黔东| 麦盖提县| 惠水县| 福安市|