Science des données

Tutoriel Python SciPy

Tutoriel Python SciPy
Dans cette leçon, nous verrons quelle est l'utilisation de la bibliothèque SciPy en Python et comment elle nous aide à travailler avec des équations mathématiques et des algorithmes de manière interactive. La bonne chose à propos du package Python SciPy est que si nous voulons des classes ou construire des pages Web, SciPy est entièrement compatible avec le système dans son ensemble et peut fournir une intégration transparente.

Comme SciPy est open source, il a une communauté de développeurs très active et dynamique grâce à laquelle il existe un nombre énorme de modules présents pour une grande quantité d'applications scientifiques et de calculs disponibles avec SciPy. Certaines des opérations mathématiques complexes qui peuvent être effectuées avec SciPy sont :

SciPy peut être comparé à la plupart des bibliothèques de commandes et standard comme la bibliothèque GSL pour C++ et Matlab. Comme SciPy est construit sur le package NumPy, ces deux packages peuvent également être complètement intégrés. Si vous pouvez penser à une opération mathématique qui doit être effectuée, assurez-vous de vérifier la bibliothèque SciPy avant d'implémenter ce module vous-même car dans la plupart des cas, SciPy a déjà implémenté toutes les opérations pour vous.

Installer la bibliothèque SciPy

Installons la bibliothèque SciPy avant de passer aux exemples et concepts réels. Il y a deux façons d'installer ce paquet. Le premier inclut l'utilisation du gestionnaire de packages Python, pip :

pip installer scipy

La deuxième manière concerne Anaconda, nous pouvons installer le package en tant que :

conda install -c anaconda scipy

Une fois la bibliothèque installée, nous pouvons l'importer en tant que :

importer scipy

Enfin, comme nous utiliserons également NumPy (il est recommandé que pour toutes les opérations NumPy, nous utilisions directement NumPy au lieu de passer par le package SciPy):

importer numpy

Il est possible que dans certains cas, nous aimions aussi tracer nos résultats pour lesquels nous utiliserons la bibliothèque Matplotlib. Effectuez l'importation suivante pour cette bibliothèque :

importer matplotlib

J'utiliserai le gestionnaire Anaconda pour tous les exemples de cette leçon. Je vais lancer un Jupyter Notebook pour le même :

Maintenant que nous sommes prêts avec toutes les instructions d'importation pour écrire du code, commençons à plonger dans le package SciPy avec quelques exemples pratiques.

Travailler avec des équations polynomiales

Nous commencerons par examiner des équations polynomiales simples. Il y a deux manières avec lesquelles nous pouvons intégrer des fonctions polynomiales dans notre programme. Nous pouvons utiliser poly1d classe qui utilise des coefficients ou les racines d'un polynôme pour initialiser un polynôme. Regardons un exemple :

de numpy importer poly1d
premier_polynôme = poly1d([3, 4, 7])
print(premier_polynôme)

Lorsque nous exécutons cet exemple, nous verrons la sortie suivante :

De toute évidence, la représentation polynomiale de l'équation est imprimée en sortie de sorte que le résultat est assez facile à comprendre. Nous pouvons également effectuer diverses opérations sur ce polynôme, comme le carré, trouver sa dérivée ou même le résoudre pour une valeur de x. Essayons de faire tout cela dans l'exemple suivant :

print("Carré polynomial : \n")
print(premier_polynôme * premier_polynôme)
print("Dérivé du polynôme : \n")
print(premier_polynôme.dérivé())
print("Résoudre le polynôme : \n")
print(first_polynomial(3))

Lorsque nous exécutons cet exemple, nous verrons la sortie suivante :

Juste au moment où je pensais que c'était tout ce que nous pouvions faire avec SciPy, je me suis souvenu que nous pouvons également intégrer un polynôme. Exécutons un dernier exemple avec des polynômes :

print("Intégrer le polynôme : \n")
print(premier_polynôme.entier(1))

L'entier que nous passons indique au package combien de fois intégrer le polynôme :

Nous pouvons simplement passer un autre entier qui indique au package combien de fois intégrer ce polynôme.

Résolution d'équations linéaires

Il est même possible de résoudre des équations linéaires avec SciPy et de trouver leurs racines, si elles existent. Pour résoudre des équations linéaires, nous représentons l'ensemble d'équations sous forme de tableaux NumPy et leur solution sous forme de tableaux NumPy distincts. Visualisons-le avec un exemple où nous faisons la même chose et utilisons linalg package pour trouver les racines des équations, voici les équations que nous allons résoudre :

1x + 5 ans = 6
3x + 7y = 9

Résolvons les équations ci-dessus :

de scipy import linalg
équation = np.tableau([[1, 5], [3, 7]])
solution = np.tableau([[6], [9]])
racines = linalg.résoudre (équation, solution)
print("Trouvé les racines :")
imprimer (racines)
print("\n Le produit scalaire doit être égal à zéro si les solutions sont correctes :")
imprimer (équation.point (racines) - solution)

Lorsque nous exécutons le programme ci-dessus, nous verrons que l'équation du produit scalaire donne un résultat nul, ce qui signifie que les racines trouvées par le programme étaient correctes :

Transformations de Fourier avec SciPy

Les transformations de Fourier nous aident à exprimer une fonction en tant que composants séparés qui composent cette fonction et nous guident sur la manière dont nous pouvons recombiner ces composants pour récupérer la fonction d'origine.

Regardons un exemple simple de transformations de Fourier où nous traçons la somme de deux cosinus à l'aide de la bibliothèque Matplotlib :

de scipy.fftpack importer fft
# Nombre de points d'échantillonnage
N = 500
# espacement des échantillons
T = 1.0 / 800.0
x = np.linspace(0.0, N*T, N)
y = np.cos (50.0 * 2.0* np.pi * x) + 0.5 * np.cos(80.0 * 2.0 * np.pi * x)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0 * T), N//2)
# matplotlib à des fins de traçage
importer matplotlib.pyplot en tant que plt
plt.tracer (xf, 2.0/N * np.abs(yf[0:N//2]))
plt.titre('Info')
plt.ylabel('axe Y')
plt.xlabel('axe X')
plt.la grille()
plt.spectacle()

Ici, nous avons commencé par construire un échantillon d'espace et d'équation en cosinus que nous avons ensuite transformé et tracé. Voici le résultat du programme ci-dessus :

C'est l'un des bons exemples où nous voyons SciPy être utilisé dans une équation mathématique complexe pour visualiser facilement les choses.

Vecteurs et matrice avec SciPy

Maintenant que nous savons beaucoup de choses dont SciPy est capable, nous pouvons être sûrs que SciPy peut également fonctionner avec Vectors et Matrix. Les matrices sont une partie importante de l'algèbre linéaire car les matrices sont également quelque chose que nous utilisons pour représenter les mappages vectoriels.

Tout comme nous avons examiné la résolution d'équations linéaires avec SciPy, nous pouvons représenter des vecteurs avec np.déployer() les fonctions. Commençons par construire une matrice :

ma_matrice = np.matrice(np.Aléatoire.aléatoire((3, 3)))
imprimer(ma_matrice)

Voici le résultat de l'extrait ci-dessus :

Chaque fois que nous parlons de matrices, nous parlons toujours de valeurs propres et de vecteurs propres. Pour faire simple, les vecteurs propres sont les vecteurs qui, multipliés par une matrice, ne changent pas de direction, contrairement à la plupart des vecteurs. Cela signifie que même lorsque vous multipliez un vecteur propre avec une matrice, il existe une valeur (ou valeur propre) qui est l'un des facteurs de la multiplication. Ça signifie:

Ax = λx.

Dans l'équation ci-dessus, A est la matrice, est la valeur propre et x est le vecteur. Écrivons un extrait de code simple pour trouver les valeurs propres pour un vecteur donné :

la, vecteur = linalg.eig(ma_matrice)
print(vecteur[:, 0])
print(vecteur[:, 1])
imprimer(linalg.eigvals(ma_matrice))

Lorsque nous exécutons cet exemple, nous verrons la sortie suivante :

Calcul du déterminant matriciel

La prochaine opération que nous allons effectuer avec SciPy est de calculer le déterminant d'une matrice à 2 dimensions. Nous allons réutiliser la matrice que nous avons utilisée dans le dernier extrait de code ici :

linalg.det( ma_matrice )

Lorsque nous exécutons cet exemple, nous verrons la sortie suivante :

Conclusion

Dans cette leçon, nous avons examiné de nombreux bons exemples où SciPy peut nous aider en effectuant des calculs mathématiques complexes pour nous avec une API et des packages faciles à utiliser.

Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...
Tutoriel Unity3D
Introduction à Unity 3D Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des je...