English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本文中,我们将学习使用嵌套列表和NumPy包的Python矩阵。
此矩阵是3x4(“三乘四”)矩阵,因为它具有3行4列。
Python没有矩阵的内置类型。但是,我们可以将列表的列表视为矩阵。例如:
A = [[1, 4, 5], [-5, 8, 9]]
我们可以将此列表的列表视为具有2行3列的矩阵。
在继续本文之前,请务必了解Python列表。
让我们看看如何使用嵌套列表。
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A =", A) print("A[1], =", A[1]) # 第二行 print("A[1][2], =", A[1][2]) # 第二行的第三元素 print("A[0][-1] =", A[0][-1]) # 第一行的最后一个元素 column = []; # 空list for row in A: column.append(row[2]) print("3rd column = "column)"
When we run the program, the output will be:
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] A[1] = [-5, 8, 9, 0] A[1][2]= 9 A[0][-1]= 12 3rd column = [5, 9, 11]
Voici quelques exemples de matrices Python liés à l'utilisation de listes imbriquées.
L'utilisation de listes imbriquées en tant que matrices peut être utilisée pour des tâches de calcul simples, mais l'utilisationNumPyLe paquet est une meilleure méthode pour traiter des matrices en Python.
NumPy est un paquet de calcul scientifique qui prend en charge des objets de tableaux N dimensions puissants. Avant d'utiliser NumPy, vous devez d'abord l'installer. Pour plus d'informations,
Accédez à :Comment installer NumPy ?
Si vous utilisez Windows, téléchargez et installez Python.Édition Anaconda. Il contient NumPy ainsi que d'autres paquets liés à la science des données et à l'apprentissage automatique.
Une fois NumPy installé, vous pouvez l'importer et l'utiliser.
NumPy fournit des tableaux multidimensionnels de nombres (en réalité, un objet). Laissons un exemple :
import numpy as np a = np.array([1, 2, 3]) print(a) # Sortie: [1, 2, 3] print(type(a)) # Sortie: <class 'numpy.ndarray'>
Comme vous le voyez, la classe de tableau NumPy s'appelle ndarray.
Il existe plusieurs méthodes pour créer des tableaux NumPy.
1. Tableau d'entiers, de flottants et de nombres complexes
import numpy as np A = np.array([1, 2, 3], [3, 4, 5]] print(A) A = np.array([1.1, 2, 3], [3, 4, 5]) # Tableau de flottants print(A) A = np.array([1, 2, 3], [3, 4, 5], dtype = complex) # Tableau de nombres complexes print(A)
Lors de l'exécution de ce programme, la sortie est :
[[1 2 3] [3 4 5]] [[1.1 2. 3. ]] [3. 4. 5. ]] [[1.+0.j 2.+0.j 3.+0.j] [3.+0.j 4.+0.j 5.+0.j]]
import numpy as np zeors_array = np.zeros((2, 3) ) print(zeors_array) ''' Sortie : [[0. 0. 0.] [0. 0. 0.]] ''' ones_array = np.ones((1, 5), dtype=np.int32 ) // dtype print(ones_array) # Sortie: [[1 1 1 1 1]]
Ici, nous spécifions dtype32bits (4octets). Par conséquent, cet tableau peut prendre des valeurs de à .-2-312-31-1
3. en utilisant arange() et shape()
import numpy as np A = np.arange(4) print('A =', A) B = np.arange(12).reshape(2, 6) print('B =', B) ''' Sortie : A = [0 1 2 3] B = [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11]] '''
En savoir plus surCréer un tableau NumPyd'autres méthodes.
Ci-dessus, nous vous avons fourni3Un exemple : addition de deux matrices, multiplication de deux matrices et transposition d'une matrice. Avant d'écrire ces programmes, nous avons utilisé des listes imbriquées. Voyons comment nous pouvons accomplir la même tâche avec des tableaux NumPy.
Nous utilisons+L'opérateur additionne les éléments correspondants de deux matrices NumPy.
import numpy as np A = np.array([2, 4], [5, -6]] B = np.array([9, -3], [3, 6]] C = A + B # Addition intelligente des éléments print(C) ''' Sortie : [[11 1] [ 8 0]] '''
la multiplication de deux matrices
Pour multiplier deux matrices, nous utilisons la méthode dot(). Pour en savoir plus surnumpy.dotPour plus d'informations sur le fonctionnement.
Attention : *Pour la multiplication d'arrays (le produit des éléments correspondants de deux arrays), et non la multiplication de matrices.
import numpy as np A = np.array([3, 6, 7], [5, -3, 0]]) B = np.array([1, 1], [2, 1], [3, -3]] C = A.dot(B) print(C) ''' Sortie : [[ 36 -12] [ -1 2]] '''
Nous utilisonsnumpy.transposeCalculer la transposition de la matrice.
import numpy as np A = np.array([1, 1], [2, 1], [3, -3]] print(A.transpose()) ''' Sortie : [[ 1 2 3] [ 1 1 -3]] '''
Comme vous le voyez, NumPy rend notre tâche plus facile.
Accès aux éléments de la matrice
Comme pour une liste, nous pouvons utiliser des indices pour accéder aux éléments de la matrice. Commençons par un tableau NumPy unidimensionnel.
import numpy as np A = np.array([2, 4, 6, 8, 10]) print("A[0] =", A[0]) # Premier élément print("A[2], =", A[2]) # Troisième élément print("A[-1], =", A[-1]) # Dernier élément
Lors de l'exécution de ce programme, la sortie est :
A[0] = 2 A[2]= 6 A[-1]= 10
Maintenant, voyons comment accéder aux éléments d'un tableau à deux dimensions (basiquement une matrice).
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] # Premier élément de la première ligne print("A[0][0] =", A[0][0]) # Troisième élément de la deuxième ligne print("A[1][2], =", A[1][2]) # Dernier élément de la dernière ligne print("A[-1][-1], =", A[-1][-1])
When we run the program, the output will be:
A[0][0] = 1 A[1][2]= 9 A[-1][-1]= 19
Accès aux lignes de la matrice
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A[0] =", A[0]) # Première Ligne print("A[2], =", A[2]) # Troisième Ligne print("A[-1], =", A[-1]) # Dernière Ligne (3rd row in this case)
When we run the program, the output will be:
A[0] = [1, 4, 5, 12] A[2] = [-6, 7, 11, 19] A[-1] = [-6, 7, 11, 19]
Accès aux colonnes de la matrice
import numpy as np A = np.array([1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A[:,0] =", A[:,0]) # Premier Colonne print("A[:,3], A[:,3]) # Quatrième Colonne print("A[:,-1], A[:,-1]) #Last Column (4th column in this case)
When we run the program, the output will be:
A[:,0] = [ 1 -5 -6] A[:,3] = [12 0 19] A[:,-1] = [12 0 19]
If you don't know how the above code works, please read the slicing part of this article on matrices.
One-dimensional NumPy array slicing is similar to lists. If you don't know how list slicing works, please visitUnderstand Python slicing symbols。
Let's take an example:
import numpy as np letters = np.array([1, 3, 5, 7, 9, 7, 5]) # 3rd to 5th elements print(letters[2:5]) #Output: [5, 7, 9] # 1start to 4th elements print(letters[:-5]) #Output: [1, 3] # 6th to last elements print(letters[5:]) #Output:[7, 5] # 1start to last elements print(letters[:]) #Output:[1, 3, 5, 7, 9, 7, 5] #reversing a list print(letters[::-1]) #Output:[5, 7, 9, 7, 5, 3, 1]
Now, let's see how to slice matrices.
import numpy as np A = np.array([1, 4, 5, 12, 14], [-5, 8, 9, 0, 17], [-6, 7, 11, 19, 21]] print(A[:2, :4)] #Two rows, four columns ''' Output: [[ 1 4 5 12] [-5 8 9 0]] ''' print(A[:1,]) #First row, all columns ''' Output: [[ 1 4 5 12 14]] ''' print(A[:,2)] #All rows, second column ''' Output: [ 5 9 11] ''' print(A[:, 2:5)] #All rows, third to fifth columns '''Output: [[ 5 12 14] [ 9 0 17] [11 19 21]] '''
As you can see, using NumPy (instead of nested lists) can make it easier to handle matrices, and we haven't even touched on the basics. We recommend that you study the NumPy package in detail, especially when you try to use Python for data science/when analyzing.