Das Jupyter-Notizbuch (Python) gilt als Standard für wissenschaftliche und technologische Berechnungen wie die Datenanalyse. Hier ist eine einfache Möglichkeit, mit Docker zu beginnen.
Laden Sie das Installationsprogramm von der Docker Toolbox-Site (unten) herunter und führen Sie es aus. https://www.docker.com/products/docker-toolbox
Die Installation ist nicht schwierig, aber bei Bedarf [Referenzlink](# -% E5% 8F% 82% E8% 80% 83% E3% 83% AA% E3% 83% B3% E3% 82% AF )Bitte beziehen Sie sich auf.
Unter Linux können Sie Docker wie folgt installieren.
bash
wget -qO- https://get.docker.com/ | sh
Bitte gehen Sie wie folgt vor [^ 1].
[^ 1]: Sowohl die Benutzer-ID als auch die Gruppen-ID sind auf 1000 festgelegt. Wenn nicht, ändern Sie das Dockerfile und "docker build" selbst.
bash
mkdir jupyter
docker run -it -d -p 8888:8888 -v $PWD/jupyter:/home/jupyter \
--name jupyter tsutomu7/alpine-python:jupyter
firefox localhost:8888
Wenn Sie den Container beenden und löschen möchten, gehen Sie wie folgt vor:
bash
docker rm -f jupyter
Wenn Sie Docker Toolbox installieren, wird ein Tool namens Kitematic installiert. Starten Sie Kitematic. Wenn Sie es zum ersten Mal starten, wird der Docker Hub-Anmeldebildschirm angezeigt. Überspringen Sie ihn jedoch.
Wenn Kitematic startet, geben Sie "tsutomu7 / alpine-python" in das Suchfeld ein, wie unten gezeigt. Die Suchergebnisse werden unten angezeigt. Klicken Sie daher unten rechts auf "○○○".
Klicken Sie wie unten gezeigt auf "SELECTED TAG".
Klicken Sie auf "Jupiter".
Drücken Sie "x", um zurückzukehren.
Drücken Sie "CREATE".
Der Download wird gestartet und nach einer Weile wird der Container wie unten gezeigt gestartet.
Geben Sie Folgendes in eine Zelle ein und drücken Sie Umschalt + Eingabetaste, um auszuführen.
jupyter
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'IPAexGothic'
plt.plot([2,1,3], label='Stichprobe')
plt.legend();
Auf diese Weise können Sie mit matplotlib Diagramme zeichnen und auch Japanisch verarbeiten.
Geben Sie Folgendes in die Zelle ein und führen Sie es aus. Lösen von Kombinationsoptimierungsproblemen [Lösen von Mathematik](http://qiita.com/Tsutomu-KKE@github/items / 4f919f453aae95b3834b) Sie können auch.
jupyter
import pandas as pd, numpy as np
from more_itertools import grouper
from pulp import *
prob = """\
..6.....1
.7..6..5.
8..1.32..
..5.4.8..
.4.7.2.9.
..8.1.7..
..12.5..3
.6..7..8.
2.....4..
"""
r = range(9)
m = LpProblem() #Mathematisches Modell
a = pd.DataFrame([(i, j, k, LpVariable('x%d%d%d'%(i,j,k), cat=LpBinary))
for i in r for j in r for k in r],
columns=['Vertikal', 'Seite', 'Nummer', 'x']) # (Formulierung 1)
for i in r:
for j in r:
m += lpSum(a[(a.Vertikal== i) & (a.Seite== j)].x) == 1 # (Formulierung 2)
m += lpSum(a[(a.Vertikal== i) & (a.Nummer== j)].x) == 1 # (Formulierung 3)
m += lpSum(a[(a.Seite== i) & (a.Nummer== j)].x) == 1 # (Formulierung 4)
for i in range(0, 9, 3):
for j in range(0, 9, 3):
for k in r:
m += lpSum(a[(a.Vertikal>= i) & (a.Vertikal< i+3) & # (Formulierung 5)
(a.Seite>= j) & (a.Seite< j+3) & (a.Nummer== k)].x) == 1
for i, s in enumerate(prob.split('\n')):
for j, c in enumerate(s):
if c.isdigit():
k = int(c)-1 # (Formulierung 6)
m += lpSum(a[(a.Vertikal== i) & (a.Seite== j) & (a.Nummer== k)].x) == 1
m.solve() #Mit Löser lösen
f = a.x.apply(lambda v: value(v) == 1) #Ausgewählte Nummer
print(np.array(list(grouper(9, a.Nummer[f] + 1))))
Ergebnis
[[5 3 6 8 2 7 9 4 1]
[1 7 2 9 6 4 3 5 8]
[8 9 4 1 5 3 2 6 7]
[7 1 5 3 4 9 8 2 6]
[6 4 3 7 8 2 1 9 5]
[9 2 8 5 1 6 7 3 4]
[4 8 1 2 9 5 6 7 3]
[3 6 9 4 7 1 5 8 2]
[2 5 7 6 3 8 4 1 9]]
Das Jupyter-Notizbuch enthält auch ein Bild des Jupyter-Projekts (jupyter / notebook). Der diesmal vorgestellte hat die folgenden Vorzüge.
Charakteristisch | Was wurde eingeführt | Jupyter Project |
---|---|---|
Neu | Python 3.5.1 | Python 3.4.3 |
Kleine Größe | 658.5 MB | 863.1 MB |
Viele installierte Pakete | 69 | 38 |
package | ver | package | ver | package | ver | package | ver |
---|---|---|---|---|---|---|---|
blist | 1.3.6 | bokeh | 0.11.1 | chest | 0.2.3 | cloudpickle | 0.1.1 |
conda | 4.0.5 | conda-env | 2.4.5 | cycler | 0.10.0 | dask | 0.8.2 |
decorator | 4.0.9 | entrypoints | 0.2 | flask | 0.10.1 | fontconfig | 2.11.1 |
freetype | 2.5.5 | heapdict | 1.0.0 | ipykernel | 4.3.1 | ipython | 4.1.2 |
ipython-genutils | 0.1.0 | ipython_genutils | 0.1.0 | ipywidgets | 4.1.1 | itsdangerous | 0.24 |
jinja2 | 2.8 | jsonschema | 2.4.0 | jupyter | 1.0.0 | jupyter-client | 4.2.2 |
jupyter-console | 4.1.1 | jupyter-core | 4.1.0 | jupyter_client | 4.2.2 | jupyter_console | 4.1.1 |
jupyter_core | 4.1.0 | libgfortran | 3.0 | libpng | 1.6.17 | libsodium | 1.0.3 |
libxml2 | 2.9.2 | locket | 0.2.0 | markdown | 2.6.6 | markupsafe | 0.23 |
matplotlib | 1.5.1 | mistune | 0.7.2 | more-itertools | 2.2 | mpmath | 0.19 |
nbconvert | 4.2.0 | nbformat | 4.0.1 | ncurses | 5.9 | networkx | 1.11 |
nomkl | 1.0 | notebook | 4.1.0 | numpy | 1.11.0 | openblas | 0.2.14 |
openssl | 1.0.2g | pandas | 0.18.0 | partd | 0.3.2 | path.py | 8.2 |
patsy | 0.4.1 | pexpect | 4.0.1 | pickleshare | 0.5 | pip | 8.1.1 |
psutil | 4.1.0 | ptyprocess | 0.5 | pulp | 1.6.1 | pycosat | 0.6.1 |
pycrypto | 2.6.1 | pygments | 2.1.3 | pyjade | 4.0.0 | pyparsing | 2.0.3 |
pyqt | 4.11.4 | python | 3.5.1 | python-dateutil | 2.5.2 | pytz | 2016.3 |
pyyaml | 3.11 | pyzmq | 15.2.0 | qt | 4.8.7 | qtconsole | 4.2.1 |
readline | 6.2 | requests | 2.9.1 | scikit-learn | 0.17.1 | scipy | 0.17.0 |
seaborn | 0.7.0 | setuptools | 20.3 | simplegeneric | 0.8.1 | sip | 4.16.9 |
six | 1.10.0 | sqlite | 3.9.2 | statsmodels | 0.6.1 | sympy | 1.0 |
terminado | 0.5 | tk | 8.5.18 | toolz | 0.7.4 | tornado | 4.3 |
traitlets | 4.2.1 | werkzeug | 0.11.5 | wheel | 0.29.0 | xz | 5.0.5 |
yaml | 0.1.6 | zeromq | 4.1.3 | zlib | 1.2.8 |
package | ver | package | ver | package | ver | package | ver |
---|---|---|---|---|---|---|---|
backports-abc | (0.4) | cffi | (1.5.2) | cryptography | (1.2.2) | decorator | (4.0.9) |
idna | (2.0) | ipykernel | (4.2.2) | ipython | (4.1.1) | ipython-genutils | (0.1.0) |
Jinja2 | (2.8) | jsonschema | (2.5.1) | jupyter-client | (4.1.1) | jupyter-core | (4.0.6) |
MarkupSafe | (0.23) | mistune | (0.7.1) | nbconvert | (4.1.0) | nbformat | (4.0.1) |
ndg-httpsclient | (0.4.0) | nose | (1.3.7) | notebook | (5.0.0.dev0) | path.py | (8.1.2) |
pexpect | (4.0.1) | pickleshare | (0.6) | pip | (8.0.2) | ptyprocess | (0.5.1) |
pyasn1 | (0.1.9) | pycparser | (2.14) | Pygments | (2.1.1) | pyOpenSSL | (0.15.1) |
pyzmq | (15.2.0) | requests | (2.9.1) | setuptools | (20.1.1) | simplegeneric | (0.8.1) |
six | (1.10.0) | terminado | (0.6) | tornado | (4.3) | traitlets | (4.1.0) |
wheel | (0.29.0) | widgetsnbextension | (0.0.2.dev0) |
das ist alles
Recommended Posts