[PYTHON] Jupyter beginnt

Einführung

Ich bin neu bei Jupyter, daher zeige ich Ihnen, wie Sie eine Umgebung auf AWS EC2 erstellen und wie Sie sie sechs Monate später problemlos für mich selbst verwenden können.

Abgesehen von den detaillierten Einstellungen besteht das Ziel darin, schnell eine Jupyter-Umgebung auf EC2 zu erstellen, ein einfaches Python-Skript auf Jupyter auszuführen und die Grundlagen der UI-Betriebsmethode von Jupyter zu erlernen. Die Kampfkraft von Linux ist gering. Versuchen Sie daher, das Verfahren so weit wie möglich zu kopieren und einzufügen.

Wenn Sie mit Amazon EMR einen Jupyter on Spark-Cluster erstellen möchten, lesen Sie hier [http://qiita.com/taka4sato/items/377a9dedb6842f056e60]. Darüber hinaus wird Jupyter Notebook ab der nächsten Version zu ** Juypter Lab **, und die Benutzeroberfläche / Funktionen werden sich erheblich ändern. Siehe hier zum Erstellen der Umgebung von Jupyter Lab.

Jupyter Umgebungsbau

Zunächst das Verfahren zum Erstellen der Jupyter-Umgebung.

EC2 erstellen

Starten Sie EC2, auf dem Jupyter ausgeführt wird, und melden Sie sich mit ssh an.

Installieren Sie das erforderliche Modul

Fügen Sie das gewünschte Modul mit "atp-get" ein, aktualisieren Sie pip und installieren Sie ipython [notebook]. Fügen Sie export LC_ALL = C hinzu, wenn Sie eine Meldung wie WARNING! Ihre Umgebung gibt ein ungültiges Gebietsschema an. bei ssh login.

$ 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]

Jupyter-Einstellungen

Führen Sie den folgenden Befehl aus, um eine Vorlage (~ / .jupyter / jupyter_notebook_config.py) der Jupyter-Konfigurationsdatei zu erstellen.

$ jupyter notebook --generate-config

Bearbeiten Sie dann ~ / .jupyter / jupyter_notebook_config.py. Da es sich bei allen Dateien um große Dateien handelt, die mit "#" auskommentiert wurden, setzen Sie die folgenden 5 Zeilen an eine beliebige Stelle, z. B. an den Anfang der Datei, und speichern Sie sie (Die folgenden Einstellungen sind Einstellungen, auf die jeder auf den Jupyter-Server zugreifen kann. Bitte beachten Sie Bitte gib mir).

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

Wenn Sie Jupyter Login Passwort wollen

Ab dem letzten Jupyter ist aus Sicherheitsgründen eine Anmeldung mit Kennwort oder Token erforderlich. Im obigen Beispiel ermöglicht "c.NotebookApp.token =" den Zugriff ohne Token.

Wenn Sie das Anmeldekennwort festlegen möchten, müssen Sie die Hash-Zeichenfolge des Kennworts im Voraus überprüfen. Wenn Sie den folgenden Befehl ausführen, wird eine Eingabeaufforderung zur Eingabe des Kennworts angezeigt. Geben Sie daher das Kennwort ein, das Sie festlegen möchten.

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

Dann wird eine Hash-Zeichenfolge zurückgegeben, die mit "sha1:" beginnt, z. B. "sha1: 3be1549bb425: 1500071094720b33gf8f0feg474931dc5e43dfed". Kopieren Sie sie daher.

Ändern Sie dann den Inhalt von ~ / .jupyter / jupyter_notebook_config.py, der in ↑ bearbeitet wurde, wie folgt. Ersetzen Sie die Hash-Zeichenfolge nach "c.NotebookApp.password" durch die Hash-Zeichenfolge, die Sie oben zuvor nachgeschlagen haben.

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'

Starten Sie Jupyter

Führen Sie den folgenden Befehl aus, um Jupyter zu starten.

$ jupyter notebook

Wechseln Sie im Browser zu EC2, z. B. "ec2-53-239-93-85.ap-northeast-1.compute.amazonaws.com: 8080". Vergessen Sie nicht den Port 8080. Der Jupyter-Anmeldebildschirm wird angezeigt. Wenn Sie sich durch Eingabe des oben festgelegten Kennworts anmelden können, sind Sie erfolgreich. Wenn Sie Background ausführen möchten, setzen Sie nohup jupyter notebook> / dev / null 2> & 1 & und Jupyter funktioniert auch dann weiter, wenn Sie ssh trennen.

Jupyter Autostart-Einstellungen

Erstellen Sie ein Skript mit dem Namen "start_jupyter.sh", registrieren Sie es in "/ etc / rc.local" und legen Sie fest, dass Jupyter beim Start von EC2 im Hintergrund ausgeführt wird.

Wie benutzt man Jupyter?

Es ist super einfach, aber es gibt einen Einblick in die Verwendung von Jupyter.

Erstellen Sie ein Jupyter-Notizbuch

Wählen Sie nach dem Anmelden "Python2" unter "Neu" aus, um ein Python2-Notizbuch zu erstellen.

Setting1.png

Über verschiedene Symbole

Jupyter schreibt Code und Beschreibung (Markdown) in ein Feld (?) Namens ** Cell ** und führt sie nacheinander aus. Die Funktionen verschiedener Symbole sind wie folgt

Setting2.png

Versuchen Sie, Python-Code einzugeben

Geben Sie den folgenden Python-Code in Cell ein. Es ist ein Code, der nur 10 Mal pro Sekunde die aktuelle Zeit druckt.

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()

Bitte geben Sie den obigen Python-Code wie unten gezeigt in die Zelle mit 4 Codes ein.

Setting3.png

Versuchen Sie, einen Kommentar einzugeben

Fügen Sie eine Markdown-Zelle wie unten gezeigt hinzu und geben Sie einen Kommentar in Markdown ein. Wenn Sie Cell> Run All ausführen, wird Markdown im gerenderten Zustand in der Reihenfolge von oben verarbeitet.

Setting5.png

Versuchen Sie, ein 2D-Diagramm zu erstellen

Es ist üblich, "matplotlib" zu verwenden, um ein 2D-Diagramm zu erstellen. Das Diagramm wird durch Ausführen des folgenden Codes auf Jupyter erstellt / angezeigt. % matplotlib inline ist ein Idiot, der benötigt wird, um das Ausgabediagramm von matplotlib auf Jupyter anzuzeigen, und es ist in Ordnung, wenn es irgendwo im Notebook einmal deklariert / ausgeführt wird.

%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()

Erstellen Sie mit np.random.randint (0, 100, 10000) 10.000 zufällige Ints im Bereich von 0-99 und zeigen Sie die Verteilung der Zufallszahlen als Histogramm von 20 Spalten an.

matplotlib.png

Darüber hinaus ist matplotlib eine alte 2D-Kartenerstellungsbibliothek, und obwohl es möglich ist, detaillierte Einstellungen vorzunehmen, gibt es eine Meinung, dass die Parametereinstellungsmethode etwas kompliziert ist, und es gibt auch eine Bibliothek, die ein modernes Designdiagramm mit einem Kurzcode namens seaborn erstellen kann. Es gibt (Siehe hier). Beachten Sie jedoch, dass einige Diagramme Matplotlib unterstützen, jedoch nicht Seaborn.

Versuchen Sie, ein 3D-Diagramm zu erstellen

Ein 3D-Diagramm kann mit einer Bibliothek namens "plotly" erstellt werden. Dies ist effektiv, wenn Sie die 3D-Datenverteilung durch maschinelles Lernen usw. überprüfen möchten und Scatter, Surface, Mesh in 3D unterstützt wird. Wenn Sie den folgenden Code auf Jupyter ausführen, wird 3D-Streudiagramm wie folgt angezeigt. Viel Spaß beim Ändern des Ansichtspunkts und Skalieren mit Drag & Pinch in / out.

np.random.multivariate_normal ([0,0,0], [[0,1, 0, 0], [0, 1, 0], [0, 0, 2]], 1000) .T hat einen Durchschnitt Es ist eine Funktion, die 1000 Zufallszahlen mit einer dreidimensionalen Normalverteilung mit [0,0,0] bzw. einer Varianz von [0,1, 1, 2] erzeugt.

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)

Versuchen Sie, eine Formel einzugeben

Es gibt verschiedene Möglichkeiten, Formeln auf Jupyter auszudrücken.

Hier werde ich es mit Mathjax bei Markdown beschreiben.

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

Geben Sie oben in ** Markdown Cell ** ein, um die Zelle auszuführen, und es ist in Ordnung, wenn sie wie folgt gerendert wird.

mathinput.jpg

Beispielformeln mit Mathjax unter Jupyter finden Sie in diesem Artikel und diesem Artikel. Es kann unter //www.suluclac.com/Wiki+MathJax+Syntax) gefunden werden. Die Grammatik von Mathjax lautet außerdem dieser Artikel (Englisch) ist zusammengefasst.

Versuchen Sie, das Notizbuch zu speichern

Sie können das erstellte Notizbuch mit "Datei"> "Umbenennen" benennen und im Format "* .ipynb" mit "Datei"> "Herunterladen als" speichern.

Andere Jupyter-Funktionen

Führen Sie das Shell-Skript auf Jupyter aus

Es gibt einige Fälle, in denen Sie es verwenden und einen Shell-Befehl ausführen möchten. Ich möchte eine Python-Bibliothek hinzufügen oder eine Datei von einem anderen Server mit wget bringen.

Sie können den Master-Knoten mit ssh eingeben und das Skript ausführen, aber Sie können das Shell-Skript auch direkt auf Jupyter mit einer der folgenden Methoden ausführen. Das Skript wird mit der Benutzerberechtigung ausgeführt, die Jupyter gestartet hat.

** Befehle verwenden **

Eine Python-Bibliothek namens Befehle führt Shell-Skripte auf Python aus.

import commands
commands.getoutput("date")
commands.getoutput("curl yahoo.co.jp")
** Benutze Jupyters ! **

Wenn Sie als Jupyter-Funktion ein Shell-Skript nach ! Schreiben, wird es ausgeführt.

!date
!curl yahoo.co.jp

Es ist möglich, das Shell-Skript wie unten gezeigt mit "sudo" auszuführen. Da Jupyter jedoch nach dem Ausführen des Skripts ständig verarbeitet wird, muss es durch Interrupt usw. wiederhergestellt werden.

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

Jupyter notebook extensions Jupyter / IPython-Erweiterungen wird entwickelt (getrennt vom ursprünglichen Entwicklungsteam von Jupyter). Dieser Artikel ist sehr gut über die Art der Funktionen organisiert.

Um die Erweiterung zu installieren, bearbeiten Sie ~ / .jupyter / jupyter_notebook_config.py mit den obigen jupyter-Einstellungen und führen Sie die folgenden zwei Zeilen aus, bevor Sie Jupyter mit dem jupyter-Notizbuch starten. ist.

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

Wenn ich gestehe, benutze ich ehrlich gesagt keine Erweiterung ... Obwohl "ExecuteTime" praktisch ist.

Jupyter Magic Commands Jupyter / IPython verfügt über eine spezielle Funktion namens "Magic Commands". Wenn Sie mit "ipython magic command" googeln, werden Sie verschiedene Dinge sehen, aber die folgenden sind berühmt.

Wenn Sie die Zelle mit "% whos" ausführen, das in der Zelle eingegeben wurde, wird der Befehl "Magie" ausgeführt. Wenn ich jedoch gestehe, benutze ich ehrlich gesagt kein Magic Command ... Ich benutze gelegentlich "% whos", weil es bequem ist.

Schließlich

Hab ein gutes Jupyter-Leben!

Recommended Posts

Jupyter beginnt
Jupyter Lab beginnt
Tkinter beginnt
Jupyters Trick 4
Jupyter nb Erweiterungen
Poesiestart
Jupyters Trick 5
PyCharm beginnt
Jupyters Trick 3
Jupyters Trick 2
Jupyter Installation
Jupyters Trick
Jupyter-Installationsfehler
Jupyter Notizbuch Memo
Einführung in Jupyter Notebook
Django startete Teil 1
Jupyter-Studie note_006
Verwalten des Jupyter-Prozesses
Django startete Teil 4
Leistungsstarkes Jupyter-Notizbuch
Golang mit Jupyter
Bash in Jupyter
Jupyter auf AWS
Jupyter-Studie note_002
Jupyter Notebook Passwort
Baue Jupyter Hub
Jupyter Notizbuch Memo
Jupyter-Studie note_008
Jupyter-Studie note_004
jupyter qtconsole config
Jupyter-Studie note_001
Jupyter-Studie note_003
Jupyter Study Note_007
Jupyter-Studie note_005