2012-01-04 32 views
5

ok, tôi không nghĩ, tôi có thể giải thích vấn đề này trong các từ như vậy, đây là đoạn mã của phiên ipython, nơi tôi nhập scipy, để xây dựng một ma trận thưa thớt.điều gì sai với việc nhập mô-đun trong scipy, đó có phải là lỗi không?

In [1]: import scipy as sp 

In [2]: a = sp.sparse.lil_matrix((5,5)) 
     --------------------------------------------------------------------------- 
     AttributeError       Traceback (most recent call last) 
     /home/liveuser/<ipython-input-2-b5a55fc2d0ac> in <module>() 
     ----> 1 a = sp.sparse.lil_matrix((5,5)) 

     AttributeError: 'module' object has no attribute 'sparse' 

In [3]: import scipy.sparse as spar 

In [4]: ax = spar.lil_matrix((5,5)) 

In [5]: a = sp.sparse.lil_matrix((5,5)) # you are kidding me? 

In [6]: a 
Out[6]: 
     <5x5 sparse matrix of type '<type 'numpy.float64'>' 
     with 0 stored elements in LInked List format> 

In [7]: ax 
Out[7]: 
     <5x5 sparse matrix of type '<type 'numpy.float64'>' 
     with 0 stored elements in LInked List format> 

gì đang xảy ra ở đó, tại sao không thể xây dựng một ma trận thưa thớt sử dụng sp, trong lần đầu tiên, khi tôi nhập khẩu thưa thớt sub-module một cách đặc biệt (như trong đoạn mã), cả hai biến sp và spar bây giờ có thể được sử dụng để xây dựng ma trận thưa thớt. (tôi đoán họ chỉ là tài liệu tham khảo để cùng đối tượng)

tôi sao chép này vỏ python mặc định, (vì vậy nó không phải là ipython cụ thể)

gì đang xảy ra, nó là bởi thiết kế ?? nếu như vậy vui lòng xây dựng. hay nó là một con bọ nhỉ??

Hệ thống của tôi là Fedora 16 KDE-science, 64 bit.

Trả lời

9

Đây là một tạo phẩm nhập khẩu của Python, không phải của SciPy. Làm

from scipy import sparse [as sp] 

hoặc

import scipy.sparse [as sp] 

(nơi [] là meta-ký hiệu cho optionality).

Tóm lại, tuyên bố import cần biết tên "đúng" của mô-đun, không phải một số từ viết tắt được tạo bởi tuyên bố import as.

+1

Không, tôi nhập tổng số scipy là sp, tôi hy vọng điều đó rõ ràng từ đoạn mã. bạn có nghĩa là khi tôi nhập khẩu scipy như sp, sparse tiểu module không được nhập khẩu vì nó là tùy chọn ?? – fedvasu

+0

@fedvasu: 'sparse' không được nhập khi bạn' nhập scipy', bất kể bạn nhập nó như thế nào. Bạn phải nhập nó một cách rõ ràng và sử dụng tên đầy đủ của nó. –

+0

tại sao lại như vậy ?? , bạn có thể làm rõ điểm đó tại đây http://chat.stackoverflow.com/rooms/6384/quickscipy-talk – fedvasu

Các vấn đề liên quan