[PYTHON] [Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Scipy

Hier soir, j'ai résumé [Introduction to Data Scientists] Bases de Numpy comme base de l'utilisation de la bibliothèque de calcul scientifique, de traitement de données et de dessin de graphiques, mais ce soir Je vais résumer les bases de Scipy. Cependant, comme Scipy est énorme parce qu'il est difficile à comprendre même s'il est copié en silence, je vais compléter l'explication dans ce livre. 【Mise en garde】 ["Cours de formation de scientifique des données à l'Université de Tokyo"](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3 % 81% AE% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 82% B5% E3% 82% A4% E3% 82% A8% E3% 83% B3% E3% 83 % 86% E3% 82% A3% E3% 82% B9% E3% 83% 88% E8% 82% B2% E6% 88% 90% E8% AC% 9B% E5% BA% A7-Python% E3% 81 % A7% E6% 89% 8B% E3% 82% 92% E5% 8B% 95% E3% 81% 8B% E3% 81% 97% E3% 81% A6% E5% AD% A6% E3% 81% B6 % E3% 83% 87% E2% 80% 95% E3% 82% BF% E5% 88% 86% E6% 9E% 90-% E5% A1% 9A% E6% 9C% AC% E9% 82% A6% Je vais lire E5% B0% 8A / dp / 4839965250 / ref = tmm_pap_swatch_0? _ Encoding = UTF8 & qid = & sr =) et résumer les parties que j'ai des doutes ou que je trouve utiles. Par conséquent, je pense que le synopsis sera simple, mais veuillez le lire en pensant que le contenu n'a rien à voir avec ce livre.

Bases de Scipy

Scipy est une bibliothèque de calculs scientifiques et technologiques, et peut effectuer divers processus mathématiques (calcul d'algèbre linéaire, transformation de Fourier, etc.). Ici, trouvons la matrice inverse de l'algèbre linéaire, des valeurs propres, des solutions d'équations, etc.

2-3-1 Importation de la bibliothèque Scipy

>>> import scipy as sp
>>> import scipy.linalg as linalg
>>> from scipy.optimize import minimize_scalar

2-3-2 Calcul matriciel

2-3-2-1 Calcul de la formule matricielle et de la matrice inverse
>>> matrix = np.array([[1,-1,-1],[-1,1,-1],[-1,-1,1]])
>>> matrix
array([[ 1, -1, -1],
       [-1,  1, -1],
       [-1, -1,  1]])
>>> print('Formule matricielle', linalg.det(matrix))
Formule matricielle-4.0
>>> print('Matrice inverse','\n', linalg.inv(matrix))
Matrice inverse
 [[ 0.  -0.5 -0.5]
 [-0.5 -0.  -0.5]
 [-0.5 -0.5  0. ]]
>>> print('Produit matriciel','\n',matrix.dot(linalg.inv(matrix)))
Produit matriciel
 [[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
>>> matrix*linalg.inv(matrix)   #Produit d'élément de numpy
array([[ 0. ,  0.5,  0.5],
       [ 0.5, -0. ,  0.5],
       [ 0.5,  0.5,  0. ]])
>>> [email protected](matrix)   #Produit de numpy
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
2-3-2-2 Valeur unique et vecteur unique
>>> eig_value, eig_vector = linalg.eig(matrix)
>>> print('valeur propre','\n',eig_value)
valeur propre
 [-1.+0.j  2.+0.j  2.+0.j]
>>> print('Vecteur unique','\n',eig_vector)
Vecteur unique
 [[ 0.57735027 -0.81649658  0.42755853]
 [ 0.57735027  0.40824829 -0.81618716]
 [ 0.57735027  0.40824829  0.38862863]]
>>> eig_value, eig_vector = np.linalg.eig(matrix)  #Idem pour numpy
>>> print('Vecteur unique','\n',eig_vector)
Vecteur unique
 [[ 0.57735027 -0.81649658  0.42755853]
 [ 0.57735027  0.40824829 -0.81618716]
 [ 0.57735027  0.40824829  0.38862863]]
>>> print('valeur propre','\n',eig_value)   #valeur propreは実数表記
valeur propre
 [-1.  2.  2.]

À propos de scipy.linalg vs numpy.linalg 【référence】 Linear Algebra (scipy.linalg) "Scipy.linalg contient toutes les fonctions de numpy.linalg. De plus, il contient d'autres éléments plus avancés non inclus dans numpy.linalg." "Un autre avantage de l'utilisation de scipy.linalg par rapport à numpy.linalg est qu'il est toujours compilé avec la prise en charge BLAS / LAPACK, alors qu'il est facultatif pour numpy. Par conséquent, selon la façon dont numpy est installé, La version de scipy est peut-être plus rapide. " "Par conséquent, utilisez scipy.linalg au lieu de numpy.linalg à moins que vous ne souhaitiez pas ajouter scipy en tant que dépendance du programme numpy."

2-3-3 Méthode de Newton

Exemple de calcul d'optimisation

2-3-3-1 Solution de l'équation
>>> def my_function(x):
...     return (x**2 + 2*x + 1)
...
>>> from scipy.optimize import newton
>>> newton(my_function,0)
-0.9999999852953906
2-3-3-2 Trouver la valeur minimale

Utilisez la méthode Brent Et trouvez la valeur minimale de ma_fonction ().

>>> minimize_scalar(my_function, method = 'Brent')
     fun: 0.0
    nfev: 9
     nit: 4
 success: True
       x: -1.0000000000000002
Exercice 2-6
>>> def my_function2(x):
...     return (x**3 + 2*x + 1)
...
>>> newton(my_function2,0)
-0.45339765151640365

SciPy Tutorial Pendant un moment, je ne peux qu'écrire comment utiliser l'entrée, donc j'aimerais la copier bientôt. SciPy Tutorial Introduction Basic functions Special functions (scipy.special) Integration (scipy.integrate) Optimization (scipy.optimize) Interpolation (scipy.interpolate) Fourier Transforms (scipy.fft) Signal Processing (scipy.signal) Linear Algebra (scipy.linalg) Sparse eigenvalue problems with ARPACK Compressed Sparse Graph Routines (scipy.sparse.csgraph) Spatial data structures and algorithms (scipy.spatial) Statistics (scipy.stats) Multidimensional image processing (scipy.ndimage) File IO (scipy.io)

Résumé

・ Résumé des bases de Scipy dans ce livre ・ Scipy souffre souvent de numpy, mais Scipy de base semble être plus rapide.

・ Le didacticiel SciPy a beaucoup de volume, mais il existe de nombreux exemples intéressants, je voudrais donc le résumer.

Recommended Posts

[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Scipy
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Pandas
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessin de graphes ♬ Bases de Matplotlib
[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
[Introduction au Data Scientist] Bases de Python ♬
[Introduction to Data Scientists] Bases de Python ♬ Branchements conditionnels et boucles
[Introduction aux Data Scientists] Bases de Python ♬ Fonctions et fonctions anonymes, etc.
Comment utiliser la bibliothèque de dessins graphiques Bokeh
[Introduction aux data scientists] Bases de la probabilité et des statistiques ♬ Variable de probabilité / probabilité et distribution de probabilité
Introduction de DataLiner ver.1.3 et comment utiliser Union Append
Jupyter Notebook Principes d'utilisation
Bases de PyTorch (1) -Comment utiliser Tensor-
Introduction du cadre de cybersécurité "MITRE CALDERA": utilisation et formation
Utiliser des décorateurs pour empêcher la ré-exécution du traitement des données
Comment utiliser la bibliothèque de traitement d'image basée sur PyTorch "Kornia"
[Introduction à Python] Comment utiliser l'instruction while (traitement répétitif)
[Introduction à Azure pour les utilisateurs de kaggle] Comparaison du démarrage et de l'utilisation de la machine virtuelle Azure Notebooks et Azure Notebooks
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
[Python] Comment utiliser la bibliothèque de création de graphes Altair
[Introduction aux Data Scientists] Statistiques descriptives et analyse de régression simple ♬
[python] Comment utiliser Matplotlib, une bibliothèque pour dessiner des graphiques
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Introduction] Comment utiliser open3d
Comment extraire des fonctionnalités de données de séries chronologiques avec les bases de PySpark
[Introduction à cx_Oracle] (Partie 2) Principes de base de la connexion et de la déconnexion à Oracle Database
[Introduction à Python] Comment utiliser l'opérateur booléen (et ・ ou ・ non)
Comment installer et utiliser Tesseract-OCR
Comment utiliser les requêtes (bibliothèque Python)
Résumé de l'utilisation de pyenv-virtualenv
Comment utiliser .bash_profile et .bashrc
Comment installer et utiliser Graphviz
Résumé de l'utilisation de csvkit
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
[Introduction à Python] Comment utiliser la classe en Python?
Comment installer et utiliser pandas_datareader [Python]
Comment calculer Utiliser% de la commande df
[Python2.7] Résumé de l'utilisation d'unittest
python: Comment utiliser les locals () et globals ()
Comment utiliser "deque" pour les données Python
Comment utiliser le zip Python et énumérer
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Comment utiliser is et == en Python
Comment utiliser les pandas Timestamp et date_range
[Question] Comment utiliser plot_surface de python
[Python] De l'analyse morphologique des données CSV à la sortie CSV et à l'affichage graphique [GiNZA]
OpenGoddard Comment utiliser la bibliothèque 2-python pour un contrôle optimal non linéaire et la génération de trajectoires
Comment utiliser la bibliothèque OpenGoddard 4-python pour un contrôle optimal non linéaire et la génération de trajectoires
Comment utiliser la bibliothèque OpenGoddard 1-python pour un contrôle optimal non linéaire et la génération de trajectoires
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for