À mesure que mon ordinateur portable s'allonge, je veux extraire du code, afin que le bloc-notes soit plus lisible.Ipython Notebook: Manière élégante d'extraire la méthode?
Par exemple, ceci est une cell/function
que je veux extraire de l'ordinateur portable
def R_square_of(MSE, kde_result):
# R square measure:
# https://en.wikipedia.org/wiki/Coefficient_of_determination
y_mean = np.mean(kde_result)
SS_tot = np.power(kde_result - y_mean,2)
SS_tot_avg = np.average(SS_tot)
SS_res_avg = MSE
R_square = 1 - SS_res_avg/SS_tot_avg
return R_square
Comment puis-je le faire efficacement?
Mes pensées:
- Il est assez facile de créer un
my_helper.py
et mettre le code ci-dessus là, alorsfrom my_helper import *
- Le problème est que, j'utiliser un autre paquet dans la méthode (dans ce cas,
np
, soitnumpy
), puis je dois réimporter numpy dansmy_helper.py
. Peut-il réutiliser l'environnement créé dansipython notebook
, donc pas besoin de réimporter? - Si je change le code dans
my_helper.py
, j'ai besoin de redémarrer le noyau pour charger le changement (NameError: global name 'numpy' is not defined), cela rend difficile de changer le code dans ce fichier.
Oui, je pense que peut-être un module est meilleur, mais j'ai besoin de redémarrer le noyau pour valider le changement. Est-il possible de se débarrasser de cela? – cqcn1991
La fonction intégrée [reload] (https://docs.python.org/2/library/functions.html#reload) peut vous aider à progresser. – Kos
Trouver ceci, peut-être utile, http://stackoverflow.com/questions/5364050/reloading-submodules-in-ipython – cqcn1991