[Python] Temps de traitement de la multiplication de la matrice avec NumPy

Qu'est-ce que NumPy

Comme vous le savez tous, Python est un langage de programmation puissant dans les domaines de l'apprentissage automatique et de l'IA. La raison en est l'abondance de bibliothèques universitaires mathématiques. NumPy est une bibliothèque Python représentative.

Calcul matriciel (multiplication) à l'aide de NumPy

Je vais utiliser NumPy pour gérer la multiplication matricielle. Je pense que même une matrice carrée 3 * 3 sera difficile pour le calcul manuel humain. Ici, je voudrais mesurer le temps de traitement de 100 * 100.

#Importer NumPy
import numpy as np
import time
from numpy.random import rand

#Matrice 100*Spécifiez 100
N = 100

#Initialisez la matrice et générez un nombre aléatoire
matA = np.array(rand(N, N))
matB = np.array(rand(N, N)) 
matC = np.array([[0] * N for _ in range(N)]) 

#Obtenir l'heure de début
start = time.time()

#Effectuer une multiplication matricielle
matC = np.dot(matA, matB)

#Sortie en se terminant à la deuxième fraction
print("Résultat du calcul avec NumPy:%.2f[sec]" % float(time.time() - start))

Résultat du traitement

Résultat du calcul avec NumPy: 0,03 [sec]

Imbriquez et calculez Python pour les instructions sans utiliser NumPy

#Importer NumPy
import numpy as np
import time
from numpy.random import rand

#Matrice 100*Spécifiez 100
N = 100

#Initialisez la matrice et générez un nombre aléatoire
matA = np.array(rand(N, N))
matB = np.array(rand(N, N)) 
matC = np.array([[0] * N for _ in range(N)]) 

#Obtenir l'heure de début
start = time.time()

#Nest pour déclaration
for i in range(N):
    for j in range(N):
        for k in range(N):
            matC[i][j] = matA[i][k] * matB[k][j]

print("Résultat du calcul en Python pour l'instruction:%.2f[sec]" % float(time.time() - start))

Résultat du traitement

Résultat du calcul en Python pour l'instruction: 0.92 [sec]

Dans le calcul matriciel 100 * 100, la différence de temps de traitement entre NumPy et pour l'imbrication d'instructions est d'environ 9 fois.

Non seulement la bibliothèque rend votre code plus facile et plus facile à utiliser On peut voir que le temps de traitement peut être considérablement réduit et la charge du système peut être considérablement réduite.

J'étudie juste.

■ Références

Apprenez en évoluant avec Python! Nouveau manuel d'apprentissage en profondeur De l'apprentissage automatique de base à l'apprentissage en profondeur (IA et TECHNOLOGIE) par Toshihiko Ishikawa, Idemie Co., Ltd. https://www.shoeisha.co.jp/book/detail/9784798158570

Recommended Posts

[Python] Temps de traitement de la multiplication de la matrice avec NumPy
Produit matriciel en python numpy
[Python] Divers traitements de données utilisant le tableau Numpy
Utilisation du mode Python dans le traitement
[Python] Quatre-vingt-dix-neuf tables utilisant des instructions for
python> Traitement de la mesure du temps> time.time () --start_time
Produit matriciel
Traitement d'exécution périodique lors de l'utilisation de tkinter [Python3]
[Python] Accélération du traitement à l'aide des outils de cache
Filtrage par convolution par matrice-Reinventor of Python image processing-
[Calcul scientifique / technique par Python] Calcul de matrice inverse, numpy
Mon Numpy (Python)
Analyse de la variation temporelle des trous noirs en utilisant Python
Premier Python
traitement d'image python
Déboguer avec VS Code en utilisant Boost Python Numpy
Commencez à utiliser Python
mesure du temps python
Traitement de fichiers Python
Une manière intelligente de chronométrer le traitement avec Python
Premier Python
Les bases de #Python (#Numpy 1/2)
Les bases de #Python (#Numpy 2/2)
[Python] Opération de matrice
Principes de base de Python #Numpy
Scraping à l'aide de Python
[Python] Mémo Numpy
Traitement d'image par matrice Basics & Contents-Reinventor of Python image processing-
Comment mesurer le temps de traitement avec Python ou Java
[Python] Mesure et affiche le temps nécessaire au traitement
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
Temps de multiplication à plusieurs chiffres jusqu'à 300 millions de chiffres en python
Traitement distribué Python Spartan
Python: analyse des séries chronologiques
Astuces Python et Numpy
Manipuler Redmine à l'aide de Python Redmine
Traitement de fichiers en Python
Temps d'exécution de la fonction (Python)
Python: traitement du langage naturel
Traitement de la communication par Python
Séquence de Fibonacci utilisant Python
Traitement multithread en python
Traitement de type dictionnaire à l'aide d'éléments ()
Test numpy Python Basic 8
Premier traitement d'image Python
Nettoyage des données à l'aide de Python
Question sur la série chronologique Python
[Python] Recherche (NumPy) ABC165C
Traitement de texte avec Python
calcul de tableau numpy python
Mise en œuvre de la factorisation matricielle (python)
Traitement des requêtes en Python
Utilisation des packages Python #external
Sortie du temps d'exécution de python
Câblage Communication Pi-SPI avec Python
Fonction de plancher de temps (Python)