2013-04-15 2 views
5

Im новичок в Numpy и пытаюсь понять основной вопрос о том, что размер,Numpy размеров

Я попытался следующие команды и пытаемся понять, почему ndim за последние 2 массивов одинаковы?

>>> a= array([1,2,3]) 
>>> a.ndim 
1 
>>> a= array([[1,2,3],[4,5,6]]) 
>>> a 
array([[1, 2, 3], 
     [4, 5, 6]]) 
>>> a.ndim 
2 
>>> a=arange(15).reshape(3,5) 
>>> a.ndim 
2 

>>> a 
array([[ 0, 1, 2, 3, 4], 
     [ 5, 6, 7, 8, 9], 
     [10, 11, 12, 13, 14]]) 

Мое понимание ..

Case 1: 
    array([[1, 2, 3], 
      [4, 5, 6]]) 

2 elements are present in main lists, so ndim is-2 

Case 2: 
    array([[ 0, 1, 2, 3, 4], 
      [ 5, 6, 7, 8, 9], 
      [10, 11, 12, 13, 14]]) 

3 элементы присутствуют в основных списках, делают это ndim-3

+0

было бы легче объяснить, если вы упомянули, что вы ожидали их быть – shx2

+0

'ndim' означает« количество измерений ». 2D-массив имеет ndim = 2, 3D-массив имеет ndim = 3 и т. д. – endolith

ответ

10

shape массива является кортеж его размеров. Массив с одним измерением имеет форму (n,). Двухмерный массив имеет форму (n, m) (например, ваш случай 2 и 3), а трехмерный массив имеет форму (n, m, k) и т. Д.

Следовательно, в то время как форма вашего второго и третьего примеров различна, нет. размеры в два, в обоих случаях:

>>> a= np.array([[1,2,3],[4,5,6]]) 
>>> a.shape 
(2, 3) 

>>> b=np.arange(15).reshape(3,5) 
>>> b.shape 
(3, 5) 

Если вы хотите добавить еще одно измерение к вашим примерам вы должны сделать что-то вроде этого:

a= np.array([[[1,2,3]],[[4,5,6]]]) 

или

np.arange(15).reshape(3,5,1) 

Вы можете продолжать добавлять размеры таким образом:

Один размер:

>>> a = np.zeros((2)) 
array([ 0., 0.]) 
>>> a.shape 
(2,) 
>>> a.ndim 
1 

два аспекта:

>>> b = np.zeros((2,2)) 
array([[ 0., 0.], 
     [ 0., 0.]]) 
>>> b.shape 
(2,2) 
>>> b.ndim 
2 

Три размеры:

>>> c = np.zeros((2,2,2)) 
array([[[ 0., 0.], 
     [ 0., 0.]], 

     [[ 0., 0.], 
     [ 0., 0.]]]) 
>>> c.shape 
(2,2,2) 
>>> c.ndim 
3 

Четыре размеры:

>>> d = np.zeros((2,2,2,2)) 
array([[[[ 0., 0.], 
     [ 0., 0.]], 

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


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

     [[ 0., 0.], 
     [ 0., 0.]]]]) 
>>> d.shape 
(2,2,2,2) 
>>> d.ndim 
4 
Смежные вопросы