Αντιγραφή NumPy συνολών vs Προβολή

Η διαφορά μεταξύ αντιγράφου και προβολής

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

Η αντιγραφή έχει δεδομένα, οποιεσδήποτε αλλαγές που γίνονται στην αντιγραφή δεν επηρεάζουν το αρχικό σύνολο, και οποιεσδήποτε αλλαγές που γίνονται στο αρχικό σύνολο δεν επηρεάζουν την αντιγραφή.

Η προβολή δεν έχει δεδομένα, οποιαδήποτε αλλαγή που γίνεται στη προβολή επηρεάζει το αρχικό σύνολο, ενώ οποιαδήποτε αλλαγή στο αρχικό σύνολο επηρεάζει τη προβολή.

Αντιγραφή:

Παράδειγμα

Εκτέλεση αντιγραφής, αλλαγή αρχικού συνολου και εμφάνιση των δύο συνολών:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 61
print(arr) 
print(x)

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

Η αντιγραφή δεν πρέπει να επηρεάζεται από τις αλλαγές που γίνονται στο αρχικό σύνολο.

Προβολή:

Παράδειγμα

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

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 61
print(arr) 
print(x)

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

Η προβολή πρέπει να επηρεάζεται από τις αλλαγές που γίνονται στο αρχικό σύνολο.

Αλλαγή στη προβολή:

Παράδειγμα

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

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr) 
print(x)

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

Το αρχικό σύνολο πρέπει να επηρεάζεται από τις αλλαγές που γίνονται στη προβολή.

Έλεγχος αν το σύνολο έχει δεδομένα

Ως αναφέρεται παραπάνω, η αντιγραφή έχει δεδομένα ενώ η προβολή δεν έχει δεδομένα, αλλά πώς θα το ελέγξουμε;

Κάθε NumPy σύνολο έχει μια ιδιότητα base,αν το σύνολο έχει δεδομένα, τότε η ιδιότητα base επιστρέφει Κενό.

Εάν όχιbase Η ιδιότητα θα αναφέρεται στον αρχικό αντικείμενο.

Παράδειγμα

Εκτυπώστε τη τιμή της ιδιότητας base για να ελέγξετε αν το σύνολο έχει τα δικά του δεδομένα:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base)
print(y.base)

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

Αντιγραφή Επιστροφής Κενό.

Εμφάνιση Επιστροφής στο Αρχικό Σώμα