環境:Windows, Python2.7
一維情況:
<span style="font-size:14px;">>>> 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 style="font-size:14px;">>>> a = np.zeros([1]) >>> b = np.ones([1]) >>> print a [ 0. ] >>> print b [ 1. ]</span>
二維情況:
<span style="font-size:14px;">>>> 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 style="font-size:14px;">>>> a = np.ones([2, 3]) >>> print a [[ 1. 1. 1. ] [ 1. 1. 1. ]]</span>
多維情況:
多維情況統一使用np.ones進行創建,先看三維情況:
<span style="font-size:14px;">>>> 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 style="font-size:14px;">>>> a = np.ones([2,3,2]) >>> print a [[[ 1. 1.] [ 1. 1.] [ 1. 1.]] [[ 1. 1.] [ 1. 1.] [ 1. 1.]]]</span>
然后看四維情況:
<span style="font-size:14px;">>>> 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. ]]]](大包),就是下面的結果:
新聞熱點
疑難解答