2014-01-30 138 views
6
h = numpy.zeros((2,2,2)) 

最後2是什麼?它是創建一個多維數組或什麼的?在numpy中用零填充數組

輸出:

array([[[ 0., 0.], 
    [ 0., 0.]], 
    [[ 0., 0.], 
    [ 0., 0.]]]) 

如果創建拷貝數,又是什麼,當我做下面的事?

h = numpy.zeros((2,2,1)) 

輸出:

array([[[ 0.], 
    [ 0.]], 
    [[ 0.], 
    [ 0.]]]) 

我所知,這是越來越被零填充,和前兩個值指定的行和列,那第三?先謝謝你。我試過Google,但我無法提出我的問題。

+0

http://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html – devnull

+0

你的形狀有三個維度,所以你有一個三維數組。什麼部分不清楚? – geoffspear

+0

爲什麼在我的第一個問題上downvote這個網站。關於鏈接,它沒有指定關於第三部分的任何內容。 – tilaprimera

回答

8

給你要創建一個三維數組三個參數:

numpy.array((2,2,2))導致大小2x2x2的數組:

0---0 
/ /| 
0---0 0 
| |/ 
0---0 

numpy.array((2,2,1))導致大小2x2x1的數組:

0---0 
| | 
0---0 

numpy.array((2,1,2))結果S IN尺寸2x2x1的數組:

0---0 
//
0---0 

numpy.array((1,2,2))導致尺寸2x2x1的數組:

0 
/| 
0 0 
|/ 
0 
在這些表示的矩陣 「可能看起來像 numpy.array((2,2))

(2×2陣列),然而底層結構仍然是三維的。

+0

括號是完全混淆的,希望它們可以打印成3D矩陣。再次感謝。 – tilaprimera

+0

希望我能+2這個,因爲這使得人們只能看到2D矩陣並且不知道更高維(張量等),尤其是(2,2,1)與(2 ,1,2)vs(1,2,2) – usethedeathstar

+0

這不像我沒有在3D中看過矩陣。我沒有使用過numpy,並且我不熟悉打印輸出。而且,(2,1,2)和(2,2,1)之間的區別與@Nils Werner提供的可視化截然不同。然而,我不知道(2,1,2)和(2,2,1)三種不同形狀的應用。 – tilaprimera

1

該參數被指定shape of the array

In [72]: import numpy as np 

In [73]: h = np.zeros((2,2,2)) 

In [74]: h.shape 
Out[74]: (2, 2, 2) 

In [75]: h = np.zeros((2,2,1)) 

In [76]: h.shape 
Out[76]: (2, 2, 1) 

如果數組的形狀爲(a,b,c),那麼它在NumPy的說法3「軸」(或在共同英語,3「尺寸」)。軸0長度爲a,軸1長度爲b,軸2長度爲c


當定義h = np.zeros((2,2,1))通知,結果有3個級別的括號:

In [77]: h 
Out[77]: 
array([[[ 0.], 
     [ 0.]], 

     [[ 0.], 
     [ 0.]]]) 

最外面支架包含2項,中間支架還包含每2項。最內側的支架只包含一個項目。因此,形狀是(2,2,1)。

+0

謝謝大家提供我無法理解的可視化。 – tilaprimera

3

閱讀(4,3,2)如下:有4層樓的建築,每層有3排和2列房間。因此它是一個三維陣列。

In [4]: np.zeros((4, 3, 2))                  
Out[4]: 
array([[[ 0., 0.],                    
     [ 0., 0.],                    
     [ 0., 0.]],                    

     [[ 0., 0.],                    
     [ 0., 0.],                    
     [ 0., 0.]],                    

     [[ 0., 0.],                    
     [ 0., 0.],                    
     [ 0., 0.]],                    

     [[ 0., 0.],                    
     [ 0., 0.],                    
     [ 0., 0.]]])  
+0

這也是一個相當不錯的可視化。謝謝 – tilaprimera