On peut dire que le notebook Jupyter (Python) est la norme pour les calculs scientifiques et technologiques tels que l'analyse de données. Voici un moyen simple de démarrer avec docker.
Téléchargez le programme d'installation à partir du site Docker Toolbox (ci-dessous) et exécutez-le. https://www.docker.com/products/docker-toolbox
L'installation n'est pas difficile, mais si nécessaire, [lien de référence](# -% E5% 8F% 82% E8% 80% 83% E3% 83% AA% E3% 83% B3% E3% 82% AF )Prière de se référer à.
Pour Linux, vous pouvez installer le docker comme suit.
bash
wget -qO- https://get.docker.com/ | sh
Veuillez procéder comme suit [^ 1].
[^ 1]: l'ID utilisateur et l'ID de groupe sont définis sur 1000. Sinon, modifiez vous-même le Dockerfile et le "docker build".
bash
mkdir jupyter
docker run -it -d -p 8888:8888 -v $PWD/jupyter:/home/jupyter \
--name jupyter tsutomu7/alpine-python:jupyter
firefox localhost:8888
Si vous souhaitez quitter et supprimer le conteneur, procédez comme suit:
bash
docker rm -f jupyter
Lorsque vous installez Docker Toolbox, un outil appelé Kitematic est installé. Démarrez Kitematic. La première fois que vous le lancez, vous verrez l'écran de connexion Docker Hub, mais ignorez-le.
Lorsque Kitematic démarre, entrez "tsutomu7 / alpine-python" dans la zone de recherche comme indiqué ci-dessous. Les résultats de la recherche apparaîtront ci-dessous, alors cliquez sur "○○○" en bas à droite.
Cliquez sur "TAG SÉLECTIONNÉ" comme indiqué ci-dessous.
Cliquez sur "jupyter".
Appuyez sur «x» pour revenir en arrière.
Appuyez sur "CRÉER".
Le téléchargement commencera et après un certain temps, le conteneur démarrera comme indiqué ci-dessous.
Tapez ce qui suit dans une cellule et appuyez sur Maj + Entrée pour exécuter.
jupyter
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'IPAexGothic'
plt.plot([2,1,3], label='échantillon')
plt.legend();
De cette façon, vous pouvez dessiner des graphiques avec matplotlib et vous pouvez également gérer le japonais.
Entrez ce qui suit dans la cellule et exécutez-le. Résolution des problèmes d'optimisation des combinaisons [Résolution des problèmes mathématiques](http://qiita.com/Tsutomu-KKE@github/items / 4f919f453aae95b3834b) Vous pouvez également.
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() #Modèle mathématique
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=['Verticale', 'côté', 'nombre', 'x']) # (Formulation 1)
for i in r:
for j in r:
m += lpSum(a[(a.Verticale== i) & (a.côté== j)].x) == 1 # (Formulation 2)
m += lpSum(a[(a.Verticale== i) & (a.nombre== j)].x) == 1 # (Formulation 3)
m += lpSum(a[(a.côté== i) & (a.nombre== j)].x) == 1 # (Formulation 4)
for i in range(0, 9, 3):
for j in range(0, 9, 3):
for k in r:
m += lpSum(a[(a.Verticale>= i) & (a.Verticale< i+3) & # (Formulation 5)
(a.côté>= j) & (a.côté< j+3) & (a.nombre== k)].x) == 1
for i, s in enumerate(prob.split('\n')):
for j, c in enumerate(s):
if c.isdigit():
k = int(c)-1 # (Formulation 6)
m += lpSum(a[(a.Verticale== i) & (a.côté== j) & (a.nombre== k)].x) == 1
m.solve() #Résoudre avec le solveur
f = a.x.apply(lambda v: value(v) == 1) #Numéro sélectionné
print(np.array(list(grouper(9, a.nombre[f] + 1))))
résultat
[[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]]
Le notebook Jupyter a également une image du Jupyter Project (jupyter / notebook), Celui présenté cette fois a les mérites suivants.
Fonctionnalité | Ce qui a été introduit | Jupyter Project |
---|---|---|
Nouveau | Python 3.5.1 | Python 3.4.3 |
Petite taille | 658.5 MB | 863.1 MB |
De nombreux packages installés | 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) |
c'est tout
Recommended Posts