NumPy ऐरे कॉपी बनाम व्यू
कॉपी और व्यू के बीच का अंतर
प्रतिलिपि और सरणी के दृश्य के बीच मुख्य अंतर यह है कि प्रतिलिपि एक नई सरणी है, और दृश्य मूल सरणी का केवल एक दृश्य है।
प्रतिलिपि डेटा का स्वामी है और प्रतिलिपि में किए गए कोई भी परिवर्तन मूल सरणी को प्रभावित नहीं करेंगे, और मूल सरणी में किए गए कोई भी परिवर्तन प्रतिलिपि को प्रभावित नहीं करेंगे।
दृश्य डेटा का स्वामी नहीं है और दृश्य में किए गए कोई भी परिवर्तन मूल सरणी को प्रभावित करेंगे, और मूल सरणी में किए गए कोई भी परिवर्तन दृश्य को प्रभावित करेंगे।
कॉपी करें:
उदाहरण
एक प्रतिलिपि बनाएं, मूल सरणी बदलें, और दोनों सरणी प्रदर्शित करें:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 42
print(arr)
print(x)
मूल सरणी में किए गए परिवर्तनों से प्रतिलिपि प्रभावित नहीं होनी चाहिए।
दृश्य:
उदाहरण
एक दृश्य बनाएं, मूल सरणी बदलें, और दोनों सरणी प्रदर्शित करें:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42
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
वापस आती है ।None
अन्यथा, 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)
कॉपी वापस आ जाती है None
।
दृश्य मूल सरणी देता है।