เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor ในบท Numpy Array Copy vs View
ความแตกต่างระหว่างการcopyและview
ความแตกต่างที่สำคัญระหว่างการใช้copyและการใช้viewของอาเรย์ คือการcopyเป็นอาเรย์ใหม่และviewเป็นเพียงviewของอาเรย์เดิมนั่นเอง สำเนาที่เป็นเจ้าของข้อมูลและทำการเปลี่ยนแปลงใดๆก็ตาม ที่ทำกับสำเนาจะไม่ส่งผลกระทบต่ออาเรย์เดิมและทำการเปลี่ยนแปลงใดๆได้ หรือที่ทำกับอาเรย์เดิมจะไม่ส่งผลกระทบต่อการcopy
viewไม่ได้เป็นเจ้าของข้อมูลและทำการเปลี่ยนแปลงใดๆได้ สิ่งที่เกิดขึ้นกับviewจะมีผลกับอาร์เรย์เดิมและทำการเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับอาร์เรย์เดิมจะส่งผลต่อview
COPY
ตัวอย่าง
การทำสำเนาเปลี่ยนอาร์เรย์ดั้งเดิมและแสดงทั้งสองอาร์เรย์
import numpy as np |
ผลลัพธ์
[42 2 3 4 5] [1 2 3 4 5] |
VIEW
ตัวอย่าง
สร้าง view เปลี่ยนอาร์เรย์เดิมและแสดงทั้งสองอาร์เรย์
import numpy as np |
ผลลัพธ์
[42 2 3 4 5] |
ตรวจสอบว่า Array เป็นเจ้าของ Data หรือไม่??
ดังที่ได้กล่าวไว้ข้างต้นสำเนาเป็นเจ้าของข้อมูลและview ไม่ได้เป็นเจ้าของข้อมูล แต่เราจะตรวจสอบสิ่งนี้ได้อย่างไร ก็คือ ทุกๆอาร์เรย์ของ NumPy จะมีฐานแอตทริบิวต์ที่ส่งกลับค่า None ถ้าอาร์เรย์เป็นเจ้าของข้อมูล มิฉะนั้นแอตทริบิวต์ฐานหมายถึงวัตถุต้นฉบับ
ตัวอย่าง
พิมพ์ค่าของแอตทริบิวต์ฐานเพื่อตรวจสอบว่าอาร์เรย์เป็นเจ้าของข้อมูลหรือไม่
import numpy as np |
ผลลัพธ์
None |
สรุป การ COPY จะส่งกลับNone และ VIEW ส่งกลับอาร์เรย์เดิม เเล้วเจอกันในบทหน้าครับ
แปลจากhttps://www.w3schools.com/python/numpy_copy_vs_view.asp
Tag ที่น่าสนใจ: numpy array copy view programming python data_manipulation data_ownership deep_copy shallow_copy
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com