Διαχωρισμός Πίνακα NumPy

Διαίρεση NumPy συνόλου

Η διαίρεση είναι η αντίθετη λειτουργία της σύνδεσης.

Σύνδεση (Joining) είναι η ενώμενη πολλαπλών συνολών σε ένα, Διαίρεση (Spliting) είναι η διαίρεση ενός συνόλου σε πολλαπλά.

Χρησιμοποιούμε array_split() Διαίρεση συνόλου, μεταφέρετε το σύνολο που θέλετε να διαιρέσετε και τον αριθμό των διαίρεσης στη μέθοδο.

Παράδειγμα

Διαίρεση του συνόλου σε 3 μέρη:

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

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

Σημείωση:Η επιστροφή είναι ένα σύνολο που περιέχει τρία σύνολα.

Αν τα στοιχεία του συνόλου είναι λιγότερα από τον αριθμό των απαιτούμενων, θα προσαρμόσει την άκρη κατάλληλα.

Παράδειγμα

Διαίρεση του συνόλου σε 4 μέρη:

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

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

Συμβουλή:Έχουμε επίσης split() Η μέθοδος είναι διαθέσιμη, αλλά όταν τα στοιχεία του αρχικού συνόλου είναι λιγότερα από τον αριθμό των διαίρεσης, δεν θα προσαρμόσει τα στοιχεία, όπως στο παραπάνω παράδειγμα:array_split() Λειτουργεί κανονικά, αλλά split() θα αποτύχει.

Διαίρεση σε σύνολα

array_split() Η επιστροφή της μεθόδου είναι ένα σύνολο που περιέχει κάθε διαιρεμένο σύνολο.

Αν διαιρέσετε ένα σύνολο σε 3 υποσύνολα, μπορείτε να τις προσέξετε όπως τα στοιχεία οποιουδήποτε συνόλου από τα αποτελέσματα:

Παράδειγμα

Πρόσβαση στο διαιρεμένο σύνολο:

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

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

Διαίρεση διπλής διάστασης συνόλου

Για τη διαίρεση διπλής διάστασης συνόλου, χρησιμοποιήστε την ίδια σύνταξη.

Χρήση array_split() Μέθοδος, εισάγετε το σύνολο που θέλετε να διαιρέσετε και τον αριθμό των υποσυνολών που θέλετε.

Παράδειγμα

Διασπάστε αυτό το 2-D σε τρία 2-D arrays.

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

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

Το παραπάνω παράδειγμα επιστρέφει τρία 2-D arrays.

Ας δούμε ένα άλλο παράδειγμα, αυτή τη φορά κάθε στοιχείο του 2-D array περιέχει τρία στοιχεία.

Παράδειγμα

Διασπάστε αυτό το 2-D σε τρία 2-D arrays.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)

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

Το παραπάνω παράδειγμα επιστρέφει τρία 2-D arrays.

Επιπλέον, μπορείτε να καθορίσετε το άξονα που θέλετε να διασπάσετε.

Το παρακάτω παράδειγμα επιστρέφει τρία 2-D arrays, αλλά διασπάται κατά μήκος γραμμής (axis=1).

Παράδειγμα

Διασπάστε αυτό το 2-D κατά μήκος γραμμής σε τρία 2-D arrays.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)

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

Εναλλακτική λύση είναι η χρήση με hstack() Αντίθετα hsplit().

Παράδειγμα

Χρησιμοποιήστε το μέθοδο hsplit() για να διαιρέσετε το 2-D array κατά μήκος γραμμής σε τρία 2-D arrays.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)

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

Συμβουλή:vsplit() και dsplit() Μπορείτε να χρησιμοποιήσετε με vstack() και dstack() Πρότυπα εναλλακτικές μεθόδους.