溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

numpy中shape的租用是什么

發布時間:2021-06-16 15:34:42 來源:億速云 閱讀:169 作者:Leah 欄目:開發技術

本篇文章為大家展示了numpy中shape的租用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一維情況:

<span >>>> import numpy as np 
>>> a = np.array([2,3,33]) 
>>> a 
array([ 2 3 33 ]) 
>>> print a 
[ 2 3 33 ] 
>>> a.shape 
(3, )</span>

一維情況中array創建的可以看做list(或一維數組),創建時用()和[ ]都可以,多維也一樣,兩種方法創建后的輸出顯示結果也相同,這里使用[ ]進行創建

輸出a的shape會顯示一個參數,就是這個list中元素個數

創建時也可以直接使用np.zeros([1]),這樣會創建全0的list,或者np.ones([1]),不需要我們輸入數據,見下圖:

<span >>>> a = np.zeros([1]) 
>>> b = np.ones([1]) 
>>> print a 
[ 0. ] 
>>> print b 
[ 1. ]</span>

二維情況:

<span >>>> a = np.array([[2,2,2],[3,3,3]]) 
>>> print a 
[[ 2 2 2 ] 
 [ 3 3 3 ]] 
>>> a.shape 
(2, 3)</span>

二維情況中array創建的可以看做二維數組(矩陣),注意創建時需要使用2個[ ],輸出a的shape顯示的(2,3)相當于有2行,每行3個數,使用np.ones創建結果如下:

<span >>>> a = np.ones([2, 3]) >>> print a [[ 1. 1. 1. ] [ 1. 1. 1. ]]</span>

多維情況:

多維情況統一使用np.ones進行創建,先看三維情況:

<span >>>> a = np.ones([1,1,1]) 
>>> print a 
[[[ 1.]]] 
>>> a = np.ones([1,1,2]) 
>>> print a 
[[[ 1. 1.]]] 
>>> a = np.ones([1,2,1]) 
>>> print a 
[[[ 1.] 
 [ 1.]]] 
>>> a = np.ones([2,1,1]) 
>>> print a 
[[[ 1.]] 
 
 [[ 1.]]]</span>

從上面的代碼可以看出,三維情況創建時后面2個參數可以看做是創建二維數組,第1個參數看做創建的二維數組的個數,所以創建時輸入的參數為2,3,2時,就相當于創建了2個3行2列的二維數組,如下:

<span >>>> a = np.ones([2,3,2]) 
>>> print a 
[[[ 1. 1.] 
 [ 1. 1.] 
 [ 1. 1.]] 
 
 [[ 1. 1.] 
 [ 1. 1.] 
 [ 1. 1.]]]</span>

然后看四維情況:

<span >>>> a = np.ones([1,1,1,1]) 
>>> print a 
[[[[ 1.]]]] 
>>> a = np.ones([1,1,1,2]) 
>>> print a 
[[[[ 1. 1.]]]] 
>>> a = np.ones([1,1,2,1]) 
>>> print a 
[[[[ 1.] 
 [ 1.]]]] 
>>> a = np.ones([1,2,1,1]) 
>>> print a 
[[[[ 1.]] 
 
 [[ 1.]]]] 
>>> a = np.ones([2,1,1,1]) 
>>> print a 
[[[[ 1.]]] 
 
 
 [[[ 1.]]]]</span>

從上面代碼可以看出:四維時將第一個參數設置為2和第二個參數設置為2時,輸出結果中間的空行數量不同,我把它理解成先創建1行1列的二維數組[[ 1. ]],然后按照第2個參數打包這樣的二維數組,如果第二個參數是2,則打包2個2維數組變成[[[ 1. ]],[[ 1. ]]](小包),然后按照第1個參數再打包這樣的包,如果第一個參數是2,則變成[[[[ 1. ]], [[ 1. ]]], [[[ 1. ]], [[ 1. ]]]](大包),就是下面的結果:

<span >>>> a = np.ones([2,2,1,1]) 
>>> print a 
[[[[ 1.]] 
 
 [[ 1.]]] 
 
 
 [[[ 1.]] 
 
 [[ 1.]]]]</span>

四維以上的結果也是這么理解~輸出中區分參數用空行~

然后來看一下特定輸出:

>>> import numpy as np
>>> m = np.ones([2,3,2,3])
>>> print m
[[[[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]]
 [[[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]]]
>>> print m[1,:,:,:]
[[[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]]
>>> print m[:,1,:,:]
[[[ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]]]
>>> print m[:,:,1,:]
[[[ 1. 1. 1.]
 [ 1. 1. 1.]
 [ 1. 1. 1.]]
 [[ 1. 1. 1.]
 [ 1. 1. 1.]
 [ 1. 1. 1.]]]
>>> print m[:,:,:,1]
[[[ 1. 1.]
 [ 1. 1.]
 [ 1. 1.]]
 [[ 1. 1.]
 [ 1. 1.]
 [ 1. 1.]]]

前面print m很好理解~

然后print m[1,:,:,:],:代表默認值(就是一開始你輸入時指定的值),這句代碼相當于輸出2個包中的第1個包(從0開始計數),這個包里面有3個小包,小包里面是2*3的二維數組,所以結果就是上面的~

然后print m[:,1,:,:],相當于輸出2個大包,每個大包輸出第1個小包,小包里面是2*3的二維數組

然后print m[:,:,1,:],相當于輸出2個大包,每個大包輸出3個小包,小包里面是二維數組的第1行

然后print m[:,:,:,1],相當于輸出2個大包,每個大包輸出3個小包,小包里面是1*2的二維數組

其他結果可以自己去試試~

總結:采用np.array()創建時需要幾個維度就要用幾個[ ]括起來,這種創建方式要給定數據;采用np.ones()或np.zeros()創建分別產生全1或全0的數據,用a.shape會輸出你創建時的輸入,創建時輸入了幾個維度輸出就會用幾個[ ]括起來,shape的返回值是一個元組,里面每個數字表示每一維的長度

上述內容就是numpy中shape的租用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女