นี่คือเนมสเปซที่ถูกต้องสำหรับฟังก์ชั่น:
ทั้งสองฟังก์ชั่นคืนค่าอาร์เรย์ 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
ถ้ามันเป็นสำเนาฐานจะเป็น