Μετασχηματισμός Αρχείου Αριθμοστών NumPy

Μεταμορφώσεις πίνακα

Μεταμορφώσεις σημαίνει αλλαγή της μορφής του πίνακα.

Η μορφή του πίνακα είναι ο αριθμός των στοιχείων σε κάθε διάσταση.

Με την μεταμορφώσή, μπορούμε να προσθέσουμε ή να αφαιρέσουμε διαστάσεις ή να αλλάξουμε τον αριθμό των στοιχείων σε κάθε διάσταση.

Μεταμορφώστε από 1D σε 2D

Παράδειγμα

Μεταμορφώστε τον παρακάτω 1D πίνακα με 12 στοιχεία σε 2D πίνακα.

Η εξωτερική διάσταση θα έχει 4 μαζές, με κάθε μαζή να περιέχει 3 στοιχεία:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(4, 3)
print(newarr)

Εκτέλεση Παραδείγματος

Μεταμορφώστε από 1D σε 3D

Παράδειγμα

Μεταμορφώστε τον παρακάτω 1D πίνακα με 12 στοιχεία σε 3D πίνακα.

Η εξωτερική διάσταση θα έχει 2 μαζές, με κάθε μαζή να περιέχει 3 μαζές και κάθε μαζή να περιέχει 2 στοιχεία:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(2, 3, 2)
print(newarr)

Εκτέλεση Παραδείγματος

Μπορούμε να μεταμορφώσουμε σε οποιαδήποτε μορφή;

Ναι, αρκεί να είναι τα στοιχεία που απαιτούνται για τη μεταμορφώσή τους ίδια στις δύο μορφές.

Μπορούμε να μεταμορφώσουμε το 1D μάζα με 8 στοιχεία σε 4 στοιχεία σε 2 γραμμές 2D πίνακα, αλλά δεν μπορούμε να το μεταμορφώσουμε σε 3 στοιχεία 3 γραμμών 2D πίνακα, γιατί θα χρειάζονταν 3x3 = 9 στοιχεία.

Παράδειγμα

Προσπαθήστε να μεταμορφώσετε ένα 1D μάζα με 8 στοιχεία σε 2D πίνακα με 3 στοιχεία σε κάθε διάσταση (θα προκαλέσει σφάλμα):

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)

Εκτέλεση Παραδείγματος

Επιστρέφεται αντιγραφή ή προβολή;

Παράδειγμα

Ελέγξτε αν το επιστρεφόμενο μассив είναι αντιγραφή ή προβολή:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
εκτυπώστε το βασικό αντικείμενο της μορφής του αριθμητικού πίνακα που μεταμορφώθηκε σε (2, 4)

Εκτέλεση Παραδείγματος

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

Άγνωστη διάσταση

Μπορείτε να χρησιμοποιήσετε μια "άγνωστη" διάσταση.

Αυτό σημαίνει ότι δεν χρειάζεται να καθορίσετε ακριβώς τον αριθμό μιας διάστασης στη μεθόδος reshape.

Μεταφέρει -1 Ως τιμή, το NumPy θα υπολογίσει αυτό το αριθμό για εσάς.

Παράδειγμα

Μετατροπή του 1D ματιού με 8 στοιχεία σε 3D ματιού με 2x2 στοιχεία:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)

Εκτέλεση Παραδείγματος

Σημείωση:Δεν μπορούμε να μετατρέψουμε -1 Μεταφέρει σε μια ή περισσότερες διαστάσεις.

Επίπεδη ματιού

Η επίπεδη ματιού (Flattening the arrays) σημαίνει τη μετατροπή πολλαπλών διαστάσεων σε 1D ματιού.

Μπορούμε να χρησιμοποιήσουμε reshape(-1) Για να το κάνουμε αυτό.

Παράδειγμα

Μετατροπή του ματιού σε 1D ματιού:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)

Εκτέλεση Παραδείγματος

Σημείωση:Υπάρχουν πολλές λειτουργίες που μπορούν να αλλάξουν τη μορφή του μοτίβου numpy flatten, ravel και να αναδιατάξουν τα στοιχεία rot90, flip, fliplr, flipud κ.λπ. Αυτές οι λειτουργίες ανήκουν στο μεσαίο και ανώτερο επίπεδο του numpy.