Επανεξέταση Μάζας Δεδομένων του NumPy
- Προηγούμενη Σελίδα Αναδιαμορφωση Μάζας Δεδομένων του NumPy
- Επόμενη Σελίδα Σύνδεση Μάζας Δεδομένων του NumPy
Επαναληπτική διαδικασία πίνακα
Η επαναληπτική διαδικασία σημαίνει να διαβάζουμε κάθε στοιχείο μια προς μια.
Όταν διαχειριζόμαστε πολυδιάστατους πίνακες στο numpy, μπορούμε να χρησιμοποιήσουμε τον βασικό κύκλο επαναληψης του python για να εκτελέσουμε αυτή τη λειτουργία.
Αν επαναληπτικά διαβάσουμε έναν 1-διάστατο πίνακα, θα επαναληπτικά διαβάσουμε κάθε στοιχείο.
Παράδειγμα
Επαναληπτική διαδικασία των στοιχείων του παρακάτω μονοδιάστατου πίνακα:
import numpy as np arr = np.array([1, 2, 3]) για x σε arr: print(x)
Επαναληπτική διαδικασία του 2-D πίνακα
Στο 2-D πίνακα, θα περιηγηθεί σε όλες τις γραμμές.
Παράδειγμα
Επαναληπτική διαδικασία των στοιχείων του παρακάτω δυάδους πίνακα:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) για x σε arr: print(x)
Αν επαναληπτικά διαβάσουμε έναν n-διάστατο πίνακα, θα επαναληπτικά διαβάσουμε την n-1 διάσταση.
Για να επιστρέψουμε τις πραγματικές τιμές, τις μονάδες, πρέπει να επαναληπτικά διαβάσουμε τον πίνακα σε κάθε διάσταση.
Παράδειγμα
Επαναληπτική διαδικασία κάθε μονάδας στοιχείου του 2-D πίνακα:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) για x σε arr: για y σε x: print(y)
Επαναληπτική διαδικασία του 3-D πίνακα
Στο 3-D πίνακα, θα περιηγηθεί σε όλους τους 2-D πίνακες.
Παράδειγμα
Επαναληπτική διαδικασία των στοιχείων του παρακάτω 3-D πίνακα:
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) για x σε arr: print(x)
Για να επιστρέψουμε τις πραγματικές τιμές, τις μονάδες, πρέπει να επαναληπτικά διαβάσουμε τον πίνακα σε κάθε διάσταση.
Παράδειγμα
Επαναληπτική διαδικασία μέχρι της μονάδας:
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) για x σε arr: για y σε x: για z σε y: print(z)
η επαναληπτική διαδικασία του πίνακα με nditer()
λειτουργία nditer()
είναι μια βοηθητική συνάρτηση, η οποία μπορεί να χρησιμοποιηθεί από πολύ βασική επαναληπτική διαδικασία μέχρι πολύ προηγμένη επαναληπτική διαδικασία. Λύει ορισμένα βασικά προβλήματα που αντιμετωπίζουμε κατά την επαναληπτική διαδικασία, ας το παρουσιάσουμε με παράδειγμα.
η επαναληπτική διαδικασία κάθε μονάδας στοιχείου
Στα βασικά για
Στην επαναληπτική διαδικασία, για να επαναληπτικά διαβάσουμε κάθε μονάδα του πίνακα, χρειαζόμαστε n για
Η επαναληπτική διαδικασία μπορεί να είναι δύσκολη να γράψουμε για πίνακες με υψηλή διάσταση.
Παράδειγμα
Περιηγούμαστε στον παρακάτω 3-D πίνακα:
import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) για x σε np.nditer(arr): print(x)
η επαναληπτική διαδικασία διαφορετικών τύπων δεδομένων του πλαισίου
Μπορούμε να χρησιμοποιήσουμε op_dtypes
Παράμετρος, και μεταφέρουμε τον αναμενόμενο τύπο δεδομένων, για να αλλάξουμε τον τύπο των στοιχείων κατά την επαναληπτική διαδικασία.
Το NumPy δεν αλλάζει το τύπο των στοιχείων του στοιχείου (οι στοιχεία βρίσκονται στον πίνακα), οπότε χρειάζεται λίγο άλλο χώρο για να εκτελέσει αυτή τη λειτουργία, ο επιπλέον χώρος που ονομάζεται buffer, για nditer()
Για να ενεργοποιήσετε αυτό το στοιχείο, περνάμε ως παράμετρο flags=['buffered']
.
Παράδειγμα
Περιηγηθείτε στο σύνολο του πίνακα ως字符串:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']) print(x)
Αναζητήστε με διαφορετικό βήμα
Μπορούμε να χρησιμοποιήσουμε φιλτράρισμα και στη συνέχεια να αναζητήσουμε.
Παράδειγμα
Κάθε φορά που διανύουμε ένα στοιχείο του 2D πίνακα, πήγαινε να αφήσει ένα στοιχείο:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
Αναφορά με ndenumerate() για αναφορά
Η αναφορά είναι η αναφορά των στοιχείων με αριθμητική σειρά.
Συχνά, όταν κάνουμε αναζήτηση, χρειαζόμαστε την αντίστοιχη κατάσταση των στοιχείων, για αυτούς τους σκοπούς, μπορούμε να χρησιμοποιήσουμε ndenumerate()
Μέθοδος.
Παράδειγμα
Αναφέρετε τα στοιχεία της παρακάτω 1D διαδρομής:
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Παράδειγμα
Αναφέρετε τα στοιχεία της παρακάτω 2D διαδρομής:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for idx, x in np.ndenumerate(arr): print(idx, x)
- Προηγούμενη Σελίδα Αναδιαμορφωση Μάζας Δεδομένων του NumPy
- Επόμενη Σελίδα Σύνδεση Μάζας Δεδομένων του NumPy