यहाँ कार्यों के लिए सही नामस्थान है:
दोनों फ़ंक्शन नई मेमोरी संरचनाओं की ओर इशारा करते हुए 1D सरणियों को समतल करते हैं।
import numpy
a = numpy.array([[1,2],[3,4]])
r = numpy.ravel(a)
f = numpy.ndarray.flatten(a)
print(id(a))
print(id(r))
print(id(f))
print(r)
print(f)
print("\nbase r:", r.base)
print("\nbase f:", f.base)
---returns---
140541099429760
140541099471056
140541099473216
[1 2 3 4]
[1 2 3 4]
base r: [[1 2]
[3 4]]
base f: None
ऊपरी उदाहरण में:
- परिणामों के मेमोरी स्थान अलग-अलग हैं,
- परिणाम समान दिखते हैं
- समतल एक प्रति लौटाएगा
- ravel एक दृश्य लौटाएगा।
अगर कुछ कॉपी है तो हम कैसे चेक करेंगे? की .base
विशेषता का उपयोग करना ndarray
। यदि यह एक दृश्य है, तो आधार मूल सरणी होगा; अगर यह एक प्रति है, आधार हो जाएगा None
।