Python Matrix: Transpose, Multiplication, NumPy Arrays Παραδείγματα

Τι είναι Python Μήτρα;

A Python Το matrix είναι ένας εξειδικευμένος δισδιάστατος ορθογώνιος πίνακας δεδομένων που αποθηκεύονται σε γραμμές και στήλες. Τα δεδομένα σε έναν πίνακα μπορεί να είναι αριθμοί, συμβολοσειρές, εκφράσεις, σύμβολα κ.λπ. Ο πίνακας είναι μία από τις σημαντικές δομές δεδομένων που μπορεί να χρησιμοποιηθεί σε μαθηματικούς και επιστημονικούς υπολογισμούς.

Πώς Python Οι μήτρες λειτουργούν;

Τα δεδομένα μέσα στον δισδιάστατο πίνακα σε μορφή matrix φαίνονται ως εξής:

Python Μήτρα

Βήμα 1) Δείχνει έναν πίνακα 2×2. Έχει δύο σειρές και 2 στήλες. Τα δεδομένα μέσα στον πίνακα είναι αριθμοί. Η σειρά 1 έχει τιμές 2,3 και η σειρά 2 έχει τιμές 4,5. Οι στήλες, δηλαδή, col1, έχουν τιμές 2,4, και col2 έχει τιμές 3,5.

Βήμα 2) Δείχνει έναν πίνακα 2×3. Έχει δύο σειρές και τρεις στήλες. Τα δεδομένα μέσα στην πρώτη σειρά, δηλαδή, η σειρά 1, έχουν τιμές 2,3,4 και η σειρά 2 έχει τιμές 5,6,7. Οι στήλες col1 έχει τιμές 2,5, col2 τιμές 3,6 και col3 τιμές 4,7.

Ομοίως, μπορείτε να αποθηκεύσετε τα δεδομένα σας μέσα στη μήτρα nxn Python. Πολλές πράξεις μπορούν να γίνουν σε μια πρόσθεση, αφαίρεση, πολλαπλασιασμό κ.λπ.

Python δεν έχει έναν απλό τρόπο υλοποίησης ενός τύπου δεδομένων μήτρας.

Ο πίνακας python χρησιμοποιεί πίνακες και το ίδιο μπορεί να εφαρμοστεί.

  • Δημιουργία Python Πίνακας χρησιμοποιώντας τον τύπο δεδομένων ένθετης λίστας
  • Δημιουργία Python Πίνακας χρησιμοποιώντας Πίνακες από Python Numpy πακέτο

Δημιουργία Python Πίνακας χρησιμοποιώντας έναν τύπο δεδομένων ένθετης λίστας

In Python, οι πίνακες αναπαρίστανται χρησιμοποιώντας τον τύπο δεδομένων λίστας. Έτσι τώρα θα χρησιμοποιήσει τη λίστα για να δημιουργήσει μια μήτρα python.

Θα δημιουργήσουμε έναν πίνακα 3×3, όπως φαίνεται παρακάτω:

Δημιουργία Python Πίνακας χρησιμοποιώντας ένθετη λίστα

  • Ο πίνακας έχει 3 σειρές και 3 στήλες.
  • Η πρώτη σειρά σε μια μορφή λίστας θα είναι η εξής: [8,14,-6]
  • Η δεύτερη σειρά σε μια λίστα θα είναι: [12,7,4]
  • Η τρίτη σειρά σε μια λίστα θα είναι: [-11,3,21]

Ο πίνακας μέσα σε μια λίστα με όλες τις γραμμές και τις στήλες είναι όπως φαίνεται παρακάτω:

List = [[Row1], 
           [Row2], 
           [Row3]
           ...
           [RowN]]

Έτσι, σύμφωνα με τον πίνακα που παρατίθεται παραπάνω, ο τύπος λίστας με δεδομένα μήτρας είναι ο εξής:

M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]

Για να διαβάσετε δεδομένα μέσα Python Πίνακας με χρήση λίστας.

Θα χρησιμοποιήσουμε τον πίνακα που ορίστηκε παραπάνω. Το παράδειγμα θα διαβάσει τα δεδομένα, θα εκτυπώσει τη μήτρα, θα εμφανίσει το τελευταίο στοιχείο από κάθε σειρά.

Παράδειγμα: Για να εκτυπώσετε τη μήτρα

M1 = [[8, 14, -6], 
           [12,7,4], 
           [-11,3,21]]

#To print the matrix
print(M1)

Παραγωγή:

The Matrix M1 =  [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

Παράδειγμα 2: Για να διαβάσετε το τελευταίο στοιχείο από κάθε σειρά

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

matrix_length = len(M1)

#To read the last element from each row.
for i in range(matrix_length):
    print(M1[i][-1])

Παραγωγή:

-6
4
21

Παράδειγμα 3: Για να εκτυπώσετε τις σειρές στο Matrix

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

matrix_length = len(M1)

#To print the rows in the Matrix
for i in range(matrix_length):
    print(M1[i])

Παραγωγή:

[8, 14, -6]
[12, 7, 4]
[-11, 3, 21]

Προσθήκη πινάκων με χρήση ένθετης λίστας

Μπορούμε εύκολα να προσθέσουμε δύο δεδομένους πίνακες. Οι πίνακες εδώ θα είναι στη φόρμα λίστας. Ας δουλέψουμε σε ένα παράδειγμα που θα φροντίσει να προσθέσει τους δεδομένους πίνακες.

Matrix 1:

M1 = [[8, 14, -6],
           [12,7,4], 
           [-11,3,21]]

Matrix 2:

M2 = [[3, 16, -6],
           [9,7,-4], 
           [-1,3,13]]

Το Last θα αρχικοποιήσει έναν πίνακα που θα αποθηκεύει το αποτέλεσμα των M1 + M2.

Matrix 3:

M3  = [[0,0,0],
            [0,0,0],
            [0,0,0]]

Παράδειγμα: Προσθήκη πινάκων

Για να προσθέσετε, οι πίνακες θα κάνουν χρήση ενός βρόχου for που θα κάνει βρόχο και στους δύο πίνακες που δίνονται.

M1 = [[8, 14, -6], 
      [12,7,4], 
      [-11,3,21]]

M2 = [[3, 16, -6],
           [9,7,-4], 
           [-1,3,13]]

M3  = [[0,0,0],
       [0,0,0],
       [0,0,0]]
matrix_length = len(M1)

#To Add M1 and M2 matrices
for i in range(len(M1)):
for k in range(len(M2)):
        M3[i][k] = M1[i][k] + M2[i][k]

#To Print the matrix
print("The sum of Matrix M1 and M2 = ", M3)

Παραγωγή:

The sum of Matrix M1 and M2 =  [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

Πολλαπλασιασμός πινάκων χρησιμοποιώντας ένθετη λίστα

Για να πολλαπλασιάσουμε τους πίνακες, μπορούμε να χρησιμοποιήσουμε τον βρόχο for και στους δύο πίνακες όπως φαίνεται στον παρακάτω κώδικα:

M1 = [[8, 14, -6], 
      [12,7,4], 
      [-11,3,21]]

M2 = [[3, 16, -6],
           [9,7,-4], 
           [-1,3,13]]

M3  = [[0,0,0],
       [0,0,0],
       [0,0,0]]

matrix_length = len(M1)

#To Multiply M1 and M2 matrices
for i in range(len(M1)):
for k in range(len(M2)):
        M3[i][k] = M1[i][k] * M2[i][k]

#To Print the matrix
print("The multiplication of Matrix M1 and M2 = ", M3)

Παραγωγή:

The multiplication of Matrix M1 and M2 =  [[24, 224, 36], [108, 49, -16], [11, 9, 273]]

Δημιουργία Python Πίνακας χρησιμοποιώντας Πίνακες από Python Numpy πακέτο

Η βιβλιοθήκη python Numpy βοηθά στην αντιμετώπιση πινάκων. Το Numpy επεξεργάζεται έναν πίνακα λίγο πιο γρήγορα σε σύγκριση με τη λίστα.

Για να εργαστείτε με το Numpy, πρέπει πρώτα να το εγκαταστήσετε. Ακολουθήστε τα βήματα που δίνονται παρακάτω για να εγκαταστήσετε το Numpy.

Βήμα 1) Η εντολή για την εγκατάσταση του Numpy είναι:

pip install NumPy

Βήμα 2) Για να χρησιμοποιήσετε το Numpy στον κώδικά σας, πρέπει να το εισαγάγετε.

import NumPy

Βήμα 3) Μπορείτε επίσης να εισαγάγετε το Numpy χρησιμοποιώντας ένα ψευδώνυμο, όπως φαίνεται παρακάτω:

import NumPy as np

Θα χρησιμοποιήσουμε τη μέθοδο array() από το Numpy για να δημιουργήσουμε έναν πίνακα python.

Παράδειγμα: Πίνακας στο Numpy για δημιουργία Python Μήτρα

import numpy as np
M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

Παραγωγή:

[[  5 -10  15]
 [  3  -6   9]
 [ -4   8  12]]

Μήτρα Operation χρησιμοποιώντας Numpy.Array()

Η λειτουργία μήτρας που μπορεί να γίνει είναι πρόσθεση, αφαίρεση, πολλαπλασιασμός, μετάθεση, ανάγνωση γραμμών, στηλών ενός πίνακα, τεμαχισμός του πίνακα κ.λπ. Σε όλα τα παραδείγματα, θα χρησιμοποιήσουμε μια μέθοδο array().

Προσθήκη μήτρας

Για να εκτελέσουμε πρόσθεση στον πίνακα, θα δημιουργήσουμε δύο πίνακες χρησιμοποιώντας το numpy.array() και θα τους προσθέσουμε χρησιμοποιώντας τον τελεστή (+).

Παράδειγμα:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
M3 = M1 + M2  
print(M3)

Παραγωγή:

[[ 12 -12  36]
 [ 16  12  48]
 [  6 -12  60]]

Αφαίρεση μήτρας

Για να εκτελέσουμε αφαίρεση στον πίνακα, θα δημιουργήσουμε δύο πίνακες χρησιμοποιώντας το numpy.array() και θα τους αφαιρέσουμε χρησιμοποιώντας τον τελεστή (-).

Παράδειγμα:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
M3 = M1 - M2  
print(M3)

Παραγωγή:

[[ -6  24 -18]
 [ -6 -32 -18]
 [-20  40 -18]]

Πολλαπλασιασμός μήτρας

Πρώτα θα δημιουργήσει δύο πίνακες χρησιμοποιώντας numpy.arary(). Για να πολλαπλασιάσετε τη θέλησή τους, μπορείτε να χρησιμοποιήσετε τη μέθοδο numpy dot(). Το Numpy.dot() είναι το γινόμενο κουκίδων του πίνακα M1 και M2. Η Numpy.dot() χειρίζεται τους δισδιάστατους πίνακες και εκτελεί πολλαπλασιασμούς πινάκων.

Παράδειγμα:

import numpy as np

M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
M3 = M1.dot(M2)  
print(M3)

Παραγωγή:

[[  93   78]
 [ -65 -310]]

Μεταφορά μήτρας

Η μετατόπιση ενός πίνακα υπολογίζεται αλλάζοντας τις σειρές ως στήλες και τις στήλες ως γραμμές. Η συνάρτηση transpose() από το Numpy μπορεί να χρησιμοποιηθεί για τον υπολογισμό της μετάθεσης ενός πίνακα.

Παράδειγμα:

import numpy as np

M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])
M2 = M1.transpose()

print(M2)

Παραγωγή:

[[  3   5   4]
 [  6 -10   8]
 [  9  15  12]]

Τεμαχισμός μήτρας

Ο τεμαχισμός θα σας επιστρέψει τα στοιχεία από τη μήτρα με βάση τον δείκτη έναρξης / τέλους που δίνεται.

  • Η σύνταξη για τον τεμαχισμό είναι – [start:end]
  • Εάν ο δείκτης έναρξης δεν δίνεται, θεωρείται ως 0. Για παράδειγμα [:5], σημαίνει ως [0:5].
  • Εάν το τέλος δεν περάσει, θα ληφθεί ως το μήκος του πίνακα.
  • Εάν η αρχή/τέλος έχει αρνητικές τιμές, ο τεμαχισμός θα γίνει από το τέλος του πίνακα.

Πριν εργαστούμε για τον τεμαχισμό σε μια μήτρα, ας καταλάβουμε πρώτα πώς να εφαρμόσουμε το slice σε έναν απλό πίνακα.

import numpy as np

arr = np.array([2,4,6,8,10,12,14,16])
print(arr[3:6]) # will print the elements from 3 to 5
print(arr[:5]) # will print the elements from 0 to 4
print(arr[2:]) # will print the elements from 2 to length of the array.
print(arr[-5:-1]) # will print from the end i.e. -5 to -2
print(arr[:-1]) # will print from end i.e. 0 to -2

Παραγωγή:

[ 8 10 12]
[ 2  4  6  8 10]
[ 6  8 10 12 14 16]
[ 8 10 12 14]
[ 2  4  6  8 10 12 14]

Τώρα ας εφαρμόσουμε τον τεμαχισμό σε μήτρα. Για να εκτελέσετε τεμαχισμό σε μια μήτρα

η σύνταξη θα είναι M1[row_start:row_end, col_start:col_end]

  • Η πρώτη αρχή/τέλος θα είναι για τη σειρά, δηλαδή για να επιλέξετε τις σειρές του πίνακα.
  • Η δεύτερη αρχή/τέλος θα είναι για τη στήλη, δηλαδή για την επιλογή των στηλών του πίνακα.

Ο πίνακας M1 που θα χρησιμοποιήσουμε είναι ο εξής:

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])

Υπάρχουν συνολικά 4 σειρές. Ο δείκτης ξεκινά από 0 έως 3. Το 0th Η σειρά είναι η [2,4,6,8,10], 1st Η σειρά είναι [3,6,9,-12,-15] ακολουθούμενη από 2nd και 3rd.

Ο πίνακας M1 έχει 5 στήλες. Ο δείκτης ξεκινά από 0 έως 4. Το 0th η στήλη έχει τιμές [2,3,4,5], 1st Οι στήλες έχουν τιμές [4,6,8,-10] ακολουθούμενες από 2nd, 3rd, 4th, και 5th.

Ακολουθεί ένα παράδειγμα που δείχνει πώς να λαμβάνετε δεδομένα σειρών και στηλών από τη μήτρα χρησιμοποιώντας τεμαχισμό. Στο παράδειγμα, εκτυπώνουμε το 1st και 2nd γραμμή και για στήλες θέλουμε την πρώτη, δεύτερη και τρίτη στήλη. Για να λάβουμε αυτήν την έξοδο χρησιμοποιήσαμε: M1[1:3, 1:4]

Παράδειγμα:

import numpy as np

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[1:3, 1:4]) # For 1:3, it will give first and second row.
#The columns will be taken from first to third.

Παραγωγή:

[[  6   9 -12]
 [  8  12  16]]

Παράδειγμα : Για να εκτυπώσετε όλες τις γραμμές και τις τρίτες στήλες

import numpy as np
M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:,3]) # This will print all rows and the third column data.

Παραγωγή:

[  8 -12  16 -20]

Παράδειγμα: Για να εκτυπώσετε την πρώτη γραμμή και όλες τις στήλες

import numpy as np

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:1,]) # This will print first row and all columns

Παραγωγή:

[[ 2  4  6  8 10]]

Παράδειγμα: Για να εκτυπώσετε τις πρώτες τρεις σειρές και τις πρώτες 2 στήλες

import numpy as np

M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:3,:2])

Παραγωγή:

[[2 4]
 [3 6]
 [4 8]]

Πρόσβαση στο NumPy Matrix

Είδαμε πώς λειτουργεί ο τεμαχισμός. Λαμβάνοντας αυτό υπόψη, θα δούμε πώς να λάβουμε τις γραμμές και τις στήλες από τον πίνακα.

Για να εκτυπώσετε τις σειρές του πίνακα

Στο παράδειγμα θα εκτυπωθούν οι σειρές του πίνακα.

Παράδειγμα:

import numpy as np
M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]])
print(M1[0])  #first row
print(M1[1]) # the second row
print(M1[-1]) # -1 will print the last row

Παραγωγή:

[3 6 9]
[  5 -10  15]
[ 4  8 12]

Για να πάρετε την τελευταία σειρά, μπορείτε να χρησιμοποιήσετε το δείκτη ή -1. Για παράδειγμα, ο πίνακας έχει 3 σειρές,

οπότε το M1[0] θα σας δώσει την πρώτη σειρά,

Το M1[1] θα σας δώσει τη δεύτερη σειρά

Το M1[2] ή το M1[-1] θα σας δώσει την τρίτη ή την τελευταία σειρά.

Για να εκτυπώσετε τις στήλες του πίνακα

import numpy as np
M1 = np.array([[2, 4, 6, 8, 10], 
    [3, 6, 9, -12, -15],
    [4, 8, 12, 16, -20],
    [5, -10, 15, -20, 25]])
print(M1[:,0]) # Will print the first Column
print(M1[:,3]) # Will  print the third Column
print(M1[:,-1]) # -1 will give you the last column

Παραγωγή:

[2 3 4 5]
[  8 -12  16 -20]
[ 10 -15 -20  25]

Σύνοψη

  • A Python Το matrix είναι ένας εξειδικευμένος δισδιάστατος ορθογώνιος πίνακας δεδομένων που αποθηκεύονται σε γραμμές και στήλες. Τα δεδομένα σε έναν πίνακα μπορεί να είναι αριθμοί, συμβολοσειρές, εκφράσεις, σύμβολα κ.λπ. Ο πίνακας είναι μία από τις σημαντικές δομές δεδομένων που μπορεί να χρησιμοποιηθεί σε μαθηματικούς και επιστημονικούς υπολογισμούς.
  • Python δεν έχει έναν απλό τρόπο υλοποίησης ενός τύπου δεδομένων μήτρας. Python Η μήτρα μπορεί να δημιουργηθεί χρησιμοποιώντας έναν τύπο δεδομένων ένθετης λίστας και χρησιμοποιώντας τη βιβλιοθήκη numpy.
  • Η βιβλιοθήκη python Numpy βοηθά στην αντιμετώπιση πινάκων. Το Numpy επεξεργάζεται έναν πίνακα λίγο πιο γρήγορα σε σύγκριση με τη λίστα.
  • Η λειτουργία μήτρας που μπορεί να γίνει είναι πρόσθεση, αφαίρεση, πολλαπλασιασμός, μεταφορά, ανάγνωση γραμμών, στηλών ενός πίνακα, τεμαχισμός του πίνακα κ.λπ.
  • Για να προσθέσετε δύο πίνακες, μπορείτε να χρησιμοποιήσετε το numpy.array() και να τους προσθέσετε χρησιμοποιώντας τον τελεστή (+).
  • Για να πολλαπλασιάσετε τη θέλησή τους, μπορείτε να χρησιμοποιήσετε τη μέθοδο numpy dot(). Το Numpy.dot() είναι το γινόμενο κουκίδων του πίνακα M1 και M2. Η Numpy.dot() χειρίζεται τους δισδιάστατους πίνακες και εκτελεί πολλαπλασιασμούς πινάκων.
  • Η μετάθεση ενός πίνακα υπολογίζεται αλλάζοντας τις σειρές ως στήλες και τις στήλες ως γραμμές. Η συνάρτηση transpose() από το Numpy μπορεί να χρησιμοποιηθεί για τον υπολογισμό της μετάθεσης ενός πίνακα.
  • Ο τεμαχισμός μιας μήτρας θα σας επιστρέψει τα στοιχεία με βάση τον δείκτη έναρξης / τέλους που δίνεται.