2013-04-15 42 views
5

Im a newbie to Numpy và cố gắng hiểu câu hỏi cơ bản về thứ nguyên là gì,kích thước gọn gàng

Tôi đã thử các lệnh sau và cố gắng hiểu tại sao ndim cho 2 mảng cuối cùng giống nhau?

>>> 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]]) 

hiểu biết của tôi ..

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 yếu tố có mặt trong các danh sách chính, làm ndim là-3

+0

sẽ dễ dàng hơn để giải thích nếu bạn đề cập đến những gì bạn mong đợi họ được – shx2

+0

'ndim' có nghĩa là" số thứ nguyên ". mảng 2D có ndim = 2, mảng 3D có ndim = 3, v.v. – endolith

Trả lời

10

Các shape của một mảng là một tuple chiều kích của nó. Một mảng có một chiều có hình dạng (n,). Một mảng hai chiều có một hình dạng (n, m) (như trường hợp của bạn 2 và 3) và một mảng ba chiều có hình dạng (n, m, k) và vân vân.

Do đó, trong khi hình dạng của ví dụ thứ hai và thứ ba khác nhau, thì không. kích thước là hai trong cả hai trường hợp:

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

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

Nếu bạn muốn thêm một không gian khác để ví dụ của bạn, bạn sẽ phải làm một cái gì đó như thế này:

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

hoặc

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

Bạn có thể tiếp tục thêm thứ nguyên theo cách này:

Một thứ nguyên:

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

Hai kích thước:

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

Ba kích thước:

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

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

Bốn kích thước:

>>> 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 
Các vấn đề liên quan