Nu se poate utiliza scipy.stats (Programare, Python 2.7, Scipy)

user3276418 a intrebat.

Primesc un errr atunci când folosesc scipy.stats. într-un script după ce am importat scipy.

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

În cadrul editorului de scripturi pot face clic pe statistici după ce am tastat scipy. din meniul derulant, în cadrul consolei python nu pot selecta python.stats din meniul derulant, nu este acolo.Folosesc pandas 2.7 și SciPy 0.13.0De ce se întâmplă asta?Vreo problemă cunoscută?

Comentarii

  • Ați importat statisticile, adică. from scipy import stats sau import scipy.stats. subpachetul stats nu este importat cu import scipy, dar editorul dvs. ar putea să o facă pentru completarea filelor. –  > Por Josef.
  • „editor de scripturi”? „meniu derulant”? Ce editor folosești? Cum l-ați instalat? Cum ai instalat python? Într-un terminal, nu python -c "import scipy.stats" dă o eroare? De asemenea, arătați codul care generează eroarea și codul care importă scipy.stats. –  > Por Warren Weckesser.
  • Mulțumesc, utilizarea importului scipy.stats a funcționat. –  > Por user3276418.
1 răspunsuri
Josef

extinderea comentariului meu (pentru a avea un răspuns listat).

Scipy, ca multe alte pachete mari, nu importă automat toate modulele. Dacă vrem să folosim subpachetele lui scipy, atunci trebuie să le importăm direct.

Cu toate acestea, unele subpachete scipy încarcă alte subpachete scipy, astfel încât, de exemplu, importul scipy.stats importă, de asemenea, un număr mare de alte pachete. Dar eu nu mă bazez niciodată pe acest lucru pentru a avea subpachetul disponibil în spațiul de nume.

În multe pachete care utilizează scipy, modelul preferat este să importați subpachetele pentru a le avea disponibile după numele lor, de exemplu:

>>> from scipy import stats, optimize, interpolate


>>> import scipy
>>> scipy.stats
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'stats'
>>> scipy.optimize
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'optimize'

>>> import scipy.stats
>>> scipy.optimize
<module 'scipy.optimize' from 'C:Python26libsite-packagesscipyoptimize__init__.pyc'>

Comentarii

  • Poate că ar fi bine să menționați îndrumarea explicită pentru importul din scipy: docs.scipy.org/doc/scipy/reference/api.html (Acest lucru apare destul de des și este într-adevăr bine să avem un răspuns „canonic” aici, pe SO). –  > Por ev-br.
  • Mulțumesc, acest lucru explică comportamentul observat. Folosind import.scipy.stats a funcționat. –  > Por user3276418.