[PYTHON] Jupyter commence

introduction

Je suis nouveau sur Jupyter, je vais donc vous montrer comment créer un environnement sur AWS EC2 et comment l'utiliser facilement pour moi-même six mois plus tard.

Outre les paramètres détaillés, l'objectif est de créer rapidement un environnement Jupyter sur EC2, d'exécuter un simple script Python sur Jupyter et d'apprendre les bases de la méthode d'opération de l'interface utilisateur de Jupyter. La puissance de combat de Linux est faible, alors essayez de suivre la procédure avec copier et coller autant que possible.

Si vous souhaitez créer un Jupyter sur Spark Cluster à l'aide d'Amazon EMR, veuillez consulter ici [http://qiita.com/taka4sato/items/377a9dedb6842f056e60). De plus, Jupyter Notebook deviendra ** Juypter Lab ** à partir de la prochaine version, et l'interface utilisateur / les fonctions changeront considérablement. Voir ici pour savoir comment créer l'environnement de Jupyter Lab.

Construction de l'environnement Jupyter

Tout d'abord, la procédure de création de l'environnement Jupyter.

Créer EC2

Démarrez EC2 qui exécute Jupyter et connectez-vous avec ssh.

Installer le module requis

Insérez le module requis avec ʻatp-get, mettez à jour pip et installez ipython [notebook]. Ajoutez ʻexport LC_ALL = C lorsque vous voyez un message comme ATTENTION! Votre environnement spécifie une locale invalide . lors de la connexion ssh.

$ export LC_ALL=C
$ sudo apt-get update
$ sudo apt-get install -y python-pip libpq-dev python-dev libpng12-dev libjpeg8-dev libfreetype6-dev libxft-dev
$ sudo pip install -U pip
$ sudo pip install numpy pandas matplotlib seaborn scikit-learn plotly ipython[notebook]

Paramètres de Jupyter

Exécutez la commande suivante pour créer un modèle (~ / .jupyter / jupyter_notebook_config.py) du fichier de configuration Jupyter.

$ jupyter notebook --generate-config

Puis éditez ~ / .jupyter / jupyter_notebook_config.py. Comme tous sont de gros fichiers commentés avec # `, placez les 5 lignes suivantes à n'importe quel endroit, comme le début du fichier, et enregistrez-le (les paramètres suivants sont des paramètres permettant à tout le monde d'accéder au serveur Jupyter, veuillez noter S'il te plait donne moi).

c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.token = ''

Si vous voulez utiliser le mot de passe Jupyter Login

Depuis Jupyter récent, une connexion avec un mot de passe ou un jeton est requise comme mesure de sécurité. Dans l'exemple ci-dessus, c.NotebookApp.token = '' `autorise l'accès sans jeton.

Si vous souhaitez définir le mot de passe de connexion, vous devez vérifier au préalable la chaîne de caractères de hachage du mot de passe. Lorsque vous exécutez la commande suivante, une invite pour entrer le mot de passe apparaîtra, alors entrez le mot de passe que vous souhaitez définir.

$ python -c "import IPython;print(IPython.lib.passwd())"

Ensuite, il retournera une chaîne de caractères de hachage commençant par sha1: telle que sha1: 3be1549bb425: 1500071094720b33gf8f0feg474931dc5e43dfed, donc copiez-la.

Ensuite, modifiez le contenu de ~ / .jupyter / jupyter_notebook_config.py édité dans ↑ comme suit. Remplacez la chaîne de hachage après c.NotebookApp.password par la chaîne de hachage que vous avez recherchée à l'avance ci-dessus.

c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.password = u'sha1:3be1549bb425:1500071094720b33gf8f0feg474931dc5e43dfed'

Démarrez Jupyter

Exécutez la commande suivante pour démarrer Jupyter.

$ jupyter notebook

Accédez à EC2, tel que ʻec2-53-239-93-85.ap-east-1.compute.amazonaws.com: 8080sur le navigateur. N'oubliez pas le port «8080». Lorsque l'écran de connexion Jupyter apparaît, entrez le mot de passe défini en haut et la connexion est réussie. Si vous voulez exécuter Background, définisseznohup jupyter notebook> / dev / null 2> & 1 &` et Jupyter continuera à fonctionner même si vous déconnectez ssh.

Paramètres de démarrage automatique de Jupyter

Créez un script appelé start_jupyter.sh, enregistrez-le dans / etc / rc.local et définissez Jupyter pour qu'il soit exécuté en arrière-plan au démarrage d'EC2.

Comment utiliser Jupyter

C'est super facile, mais c'est un aperçu de la façon d'utiliser Jupyter.

Créer un notebook Jupyter

Une fois connecté, sélectionnez «Python2» dans «Nouveau» pour créer un bloc-notes Python2.

Setting1.png

À propos de diverses icônes

Jupyter fonctionne en écrivant le code et la description (Markdown) dans une boîte (?) Appelée ** Cell ** et en les exécutant en séquence. Les fonctions des différentes icônes sont les suivantes

Setting2.png

Essayez de saisir du code Python

Entrez le code Python suivant dans Cell. C'est un code qui n'imprime l'heure actuelle que 10 fois par seconde.

import datetime, time

def main():
  for count in range(0, 10):
    print_current_time()
    time.sleep(1)

def print_current_time():
  print (datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S'))

if __name__ == '__main__':
  main()

Veuillez entrer le code Python ci-dessus dans la cellule de 4 codes comme indiqué ci-dessous.

Setting3.png

Essayez d'entrer un commentaire

Ajoutez une cellule Markdown comme indiqué ci-dessous et entrez un commentaire dans Markdown. Si vous exécutez Cell> Exécuter tout, Markdown sera traité dans l'ordre du haut dans l'état Rendu.

Setting5.png

Essayez de créer un graphique 2D

Il est courant d'utiliser matplotlib pour créer un graphique 2D. Le graphique est créé / affiché en exécutant le code suivant sur Jupyter. % matplotlib inline est un idiot nécessaire pour afficher le graphique de sortie de matplotlib sur Jupyter, et c'est OK s'il est déclaré / exécuté une fois quelque part sur le Notebook.

%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt

x = np.random.randint(0, 100, 10000)
plt.hist(x, bins=20)
plt.plot()

Avec np.random.randint (0, 100, 10000), créez 10000 entiers aléatoires compris entre 0 et 99 et affichez la distribution des nombres aléatoires sous forme d'histogramme de 20 colonnes.

matplotlib.png

De plus, matplotlib est une bibliothèque de création de graphiques 2D qui existe depuis longtemps, et bien que l'on pense que la méthode de paramétrage est un peu compliquée, il existe également une bibliothèque qui peut créer un graphique de conception moderne avec un code court appelé seaborn. Il y a (Reportez-vous ici). Cependant, sachez que certaines cartes prennent en charge matplotlib mais pas seaborn.

Essayez de créer un graphique 3D

Un graphique 3D peut être créé à l'aide d'une bibliothèque appelée «plotly». Il est efficace lorsque vous souhaitez vérifier la distribution des données 3D par apprentissage automatique, etc., et Scatter, Surface, Mesh est pris en charge en 3D. Si vous exécutez le code suivant sur Jupyter, 3D Scatter Chart sera affiché comme ceci. Profitez du changement de point de vue et de la mise à l'échelle avec glisser et pincer dans / hors.

np.random.multivariate_normal ([0,0,0], [[0,1, 0, 0], [0, 1, 0], [0, 0, 2]], 1000) .T a une moyenne C'est une fonction qui crée 1000 nombres aléatoires avec une distribution normale tridimensionnelle avec [0,0,0] et une variance de [0,1, 1, 2] respectivement.

import plotly
import numpy as np
plotly.offline.init_notebook_mode()

x1, y1, z1 = np.random.multivariate_normal([3,3,3], [[0.5, 0, 0], [0, 0.5, 0], [0, 0, 0.5]], 1000).T
trace1 = plotly.graph_objs.Scatter3d(x=x1, y=y1, z=z1, mode='markers', marker=dict(size=1, line=dict(color='b')))

x2, y2, z2 = np.random.multivariate_normal([0,0,0], [[0.1, 0, 0], [0, 1, 0], [0, 0, 2]], 1000).T
trace2 = plotly.graph_objs.Scatter3d(x=x2, y=y2, z=z2, mode='markers', marker=dict(size=1, line=dict(color='r')))

fig = plotly.graph_objs.Figure(data=[trace1, trace2])
plotly.offline.iplot(fig, show_link=False)

Essayez d'entrer une formule

Il existe plusieurs façons d'exprimer des formules sur Jupyter.

Ici, je vais le décrire en utilisant Mathjax sur Markdown.

$$r=\frac{1}{f}$$
$$\left(x + y\right)^{5}$$

Entrez ce qui précède dans ** Markdown Cell ** pour exécuter la cellule, et c'est OK si elle est rendue comme suit.

mathinput.jpg

Des exemples de formules utilisant Mathjax sur Jupyter sont disponibles dans cet article et cet article. Il peut être trouvé sur //www.suluclac.com/Wiki+MathJax+Syntax). De plus, la grammaire de Mathjax est cet article (en anglais) est résumé.

Essayez d'enregistrer le bloc-notes

Vous pouvez nommer le cahier créé avec fichier> renommer et l'enregistrer au format * .ipynb avec fichier> Télécharger en tant que.

Autres fonctions Jupyter

Exécuter le script shell sur Jupyter

Il existe quelques cas où vous l'utilisez et que vous souhaitez exécuter une commande Shell. Je souhaite ajouter une bibliothèque Python, ou je souhaite importer un fichier d'un autre serveur avec wget.

Vous pouvez entrer le nœud maître avec ssh et exécuter le script, mais vous pouvez également exécuter le script shell directement sur Jupyter par l'une des méthodes suivantes. Le script est exécuté avec l'autorité utilisateur qui a démarré Jupyter.

** Utilisez des commandes **

Une bibliothèque python appelée commandes exécute des scripts shell sur python.

import commands
commands.getoutput("date")
commands.getoutput("curl yahoo.co.jp")
** Utilisez Jupyter's ! **

En tant que fonction unique à Jupyter, si vous écrivez un script shell après !, Il sera exécuté.

!date
!curl yahoo.co.jp

Il est possible d'exécuter le script shell par sudo comme indiqué ci-dessous, mais comme Jupyter est toujours en train de traiter après l'exécution du script, il est nécessaire de le restaurer par interruption, etc.

!sudo su
!find / -name 'hoge.txt'

Jupyter notebook extensions Extensions Jupyter / IPython est en cours de développement (distinct de l'équipe de développement d'origine de Jupyter). Cet article est très bien organisé sur le type de fonctions dont il dispose.

Pour installer l'extension, éditez ~ / .jupyter / jupyter_notebook_config.py avec les paramètres jupyter ci-dessus, et exécutez les deux lignes suivantes avant de démarrer Jupyter avec le jupyter notebook. est.

mkdir -p ~/.local/share/jupyter
sudo pip install https://github.com/ipython-contrib/IPython-notebook-extensions/archive/master.zip

Quand j'avoue, honnêtement, je n'utilise pas Extension ... Bien que ʻExecute Time` soit pratique.

Jupyter Magic Commands Jupyter / IPython a une fonctionnalité dédiée appelée «Magic Commands». Si vous recherchez sur Google avec «i python magic command», vous verrez diverses choses, mais les suivantes sont célèbres.

Si vous exécutez la cellule avec % whos entré dans la cellule, la commande Magic sera exécutée. Cependant, quand j'avoue, honnêtement, je n'utilise pas Magic Command ... J'utilise parfois % whos parce que c'est pratique.

finalement

Bonne vie à Jupyter!

Recommended Posts

Jupyter commence
Jupyter Lab commence
Tkinter commence
Le tour de Jupyter 4
Extensions Jupyter NB
Début de la poésie
Astuce de Jupyter 5
PyCharm commence
Astuce de Jupyter 3
Le tour de Jupyter 2
Installation de Jupyter
L'astuce de Jupyter
Erreur d'installation de Jupyter
Mémo Jupyter Notebook
Présentation de Jupyter Notebook
Django a commencé la partie 1
Note d'étude Jupyter_006
Gérer le processus Jupyter
Django a commencé la partie 4
Puissant ordinateur portable Jupyter
Golang avec Jupyter
Bash dans Jupyter
Jupyter sur AWS
Note d'étude Jupyter_002
Mot de passe du notebook Jupyter
Construire Jupyter Hub
Mémo Jupyter Notebook
Note d'étude Jupyter_008
Note d'étude Jupyter_004
configuration de jupyter qtconsole
Étude Jupyter note_001
Note d'étude Jupyter_003
Note d'étude Jupyter_007
Note d'étude Jupyter_005