J'ai demandé à la société d'acheter "l'analyse des données à partir de Python" d'O'Reilly.
Enregistrez la procédure de construction afin de pouvoir la diffuser en interne.
On m'a dit qu'il n'y a pas de procédure pour Windows même si c'est pour des missions en interne, alors je l'ai ajoutée. Les utilisateurs Windows doivent utiliser Cygwin. Voici une référence: Comment installer pip et setuptools sur Cygwin Lorsque vous pouvez utiliser pip, Cliquez ici pour savoir comment insérer virtualenv
Je vais omettre l'explication de pip et virtualenv. Assurez-vous que les commandes mkvirtualenv et pip sont disponibles. De plus, je vais m'habituer à python3, donc j'utiliserai python3. O'Reilly dit de mettre Canopy Express, mais je vais installer la bibliothèque tout seul.
$ mkvirtualenv --no-site-package --python /usr/local/bin/python3 analytics
(analytics)$ pip install numpy
(analytics)$ pip install scipy
(analytics)$ pip install matplotlib
(analytics)$ pip install ipython
(analytics)$ pip install ipython[notebook]
(analytics)$ ipython
Je l'ai séparé en un environnement appelé analytique. Désormais, je travaillerai dans cet environnement. Installez ipython et d'autres bibliothèques utilisées pour l'analyse. Vérifiez la bibliothèque installée
$ pip freeze
appnope==0.1.0
cycler==0.9.0
decorator==4.0.6
gnureadline==6.3.3
ipykernel==4.2.2
ipython==4.0.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
matplotlib==1.5.0
mistune==0.7.1
nbconvert==4.1.0
nbformat==4.0.1
notebook==4.0.6
numpy==1.10.4
path.py==8.1.2
pexpect==4.0.1
pickleshare==0.5
ptyprocess==0.5
Pygments==2.0.2
pyparsing==2.0.7
python-dateutil==2.4.2
pytz==2015.7
pyzmq==15.1.0
scipy==0.16.1
simplegeneric==0.8.1
six==1.10.0
terminado==0.6
tornado==4.3
traitlets==4.0.0
wheel==0.24.0
Vérifiez si ipython fonctionne.
Python 3.5.1 (default, Dec 7 2015, 21:59:08)
Type "copyright", "credits" or "license" for more information.
IPython 4.0.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]:
Quittez avec Ctrl + d, puis installez pandas
$ pip install pandas
Vérifions l'opération. Commencez avec l'option --pylab pour utiliser le dessin graphique
$ ipython --pylab
...
RuntimeError: Python is not installed as a framework. The Mac OS X backend will
J'obtiens une erreur. Qu'est-ce que «Python n'est pas installé en tant que framework». Résolu en se référant au résultat de google ici. Créez un fichier matplotlibrc sous ~ / .matplotlib. Remplissez ce qui suit.
~/.matplotlib/matplotlibrc
backend : TkAgg
Vérifiez à nouveau l'opération.
ipython --pylab
In [1]: import pandas #les pandas peuvent être tirés
In [2]: plot(arange(10)) #Vous pouvez utiliser matplotlib
OK si un graphique droit est affiché
ipython notebook
Le navigateur sera lancé. Créer un bloc-notes à partir de Nouveau en haut à droite. Comme ce sera une page où vous pourrez taper des commandes, tout d'abord
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
Appuyez et exécutez avec le bouton de lecture ci-dessus. Vous pouvez maintenant dessiner le graphique, puis
plt.plot(np.random.randn(1000))
Appuyez sur le bouton de lecture avec. Générez 1000 nombres aléatoires qui suivent une distribution normale et dessinez-les sur un graphique. Le notebook ipython peut enregistrer la ligne de commande comme ceci. c'est incroyable!
Déplacer vers un répertoire de travail approprié
git clone https://github.com/pydata/pydata-book.git
Cela vous apportera des exemples de données que vous pourrez utiliser pour pratiquer vos statistiques.
cd pydata-book/ch02
Analysons usagov_bitly_data2012-03-16-1331923249.txt avec Python! Au fait, c'est comme un journal de génération d'URL raccourcie.
Je pensais l'écrire, mais je vais l'omettre car ce sera désormais un manuel autour des pakuri!
Un outil pratique qui apparaît au chapitre 3. Enregistrez-le car il fait partie de la construction de l'environnement. Dans l'analyse, il semble que vous souhaitiez voir le comportement de la fonction ligne par ligne lors de l'exécution de certains calculs avancés. Par exemple, si le calcul de 10 ms est répété 1 million de fois, mais qu'il peut être amélioré à 5 ms à chaque fois, 1 million de fois peut gagner beaucoup de temps. Je pense que ces améliorations seront probablement plus efficaces lorsqu'il s'agit de calculs scientifiques et technologiques utilisant des matrices à grande échelle. Ainsi, il semble que le profileur de ligne soit un outil pratique qui peut évaluer quel processus prend le temps qu'il faut pour chaque ligne de la fonction.
pip install line_profiler
ipython profile create
vi ~/.ipython/extensions/line_profiler_ext.py
txt:~/.ipython/extensions/line_profiler_ext.py
import line_profiler
def load_ipython_extension(ip):
ip.define_magic('lprun', line_profiler.magic_lprun)
vi ~/.ipython/profile_default/ipython_config.py
py:~/.ipython/profile_default/ipython_config.py
#------------------------------------------------------------------------------
# TerminalIPythonApp configuration
#------------------------------------------------------------------------------
c.TerminalIPythonApp.extensions = [
'line_profiler_ext',
]
#------------------------------------------------------------------------------
# TerminalIPythonApp configuration
#------------------------------------------------------------------------------
c.TerminalIPythonApp.extensions = [
'line_profiler_ext',
]
In [1]: from numpy.random import randn
In [2]: def add_and_sum(x, y):
...: added = x + y
...: summed = added.sum(axis=1)
...: return summed
...:
In [5]: x = randn(3000, 3000)
In [6]: y = randn(3000, 3000)
Exécutez le add_and_sum défini ci-dessus. Évaluez combien de temps cela prend avec les arguments x et y. Peut être utilisé avec la commande magique% lprun.
In [16]: %lprun -f add_and_sum add_and_sum(x, y)
Timer unit: 1e-06 s
Total time: 0.036058 s
File: <ipython-input-2-19f64f63ba0a>
Function: add_and_sum at line 1
Line # Hits Time Per Hit % Time Line Contents
==============================================================
1 def add_and_sum(x, y):
2 1 28247 28247.0 78.3 added = x + y
3 1 7809 7809.0 21.7 summed = added.sum(axis=1)
4 1 2 2.0 0.0 return summed