2016-09-07 1 views
0

Я изучаю python и использую ноутбуки; Мой учебник говорю своим использоватьКак я могу назвать ipython-модули коротким способом?

randn(5) 

, но это работает только для меня, когда я использую полностью квалифицированное метод; т.е.:

np.random.randn(5) 

Я импортировал numpy как np. Есть ли что-то еще, что мне нужно сделать, чтобы сделать эту работу? Я также хотел иметь сокращенную нотацию при вызове plot().

+0

Нет ничего плохого в использовании полного имени - на самом деле я бы сказал, что это лучше - потому что источник функции ясен. Вы можете использовать 'randn = np.random.randn', чтобы сохранить некоторую типизацию, но делайте это только тогда, когда контекст ясен. – hpaulj

+0

Загрузка 'ipython -pylab' загружает' numpy' с синтаксисом '*'; поэтому вы можете пропустить 'np.'. Но я отключил эту функцию, потому что импорт с * создает слишком много двусмысленности. Хорошо знать, что 'randn' происходит от' np' и 'plot' происходит от' plt' (или это что-то еще?). – hpaulj

ответ

0

Когда я использую %pylab inline, он работает! Спасибо

+0

Я использую простой 'ipython' shell (а иногда и' qtconsole'), но редко ноутбук. – hpaulj

1

Урок, вероятно, предполагает, что был вызван %pylab, или IPython был запущен с --pylab. Магия pylab делает:

from pylab import * 

, который включает в себя

from numpy import * 

и другие вещи, прятался где функции берутся. Учебник, вероятно, не должен предполагать, что вы это сделали, но если это так, то должно быть очень понятно об этом факте и указать, что произошло и откуда эти функции.

В наши дни в учебных материалах обычно считают разумными делать импорт таким явным, например,

import numpy as np 
np.random.randn(x) 

или

from numpy.random import randn 
randn(x) 

особенно в записной книжке, где экономить несколько символов, набрав гораздо менее ценное, чем в терминале.

 Смежные вопросы

  • Нет связанных вопросов^_^