กวดวิชาNumPy

NumPy HOME แนะนำ NumPy NumPy เริ่มต้นใช้งาน NumPy การสร้างอาร์เรย์ การจัดทำดัชนี NumPy Array NumPy Array Slicing ประเภทข้อมูล NumPy NumPy Copy เทียบกับ View NumPy Array Shape การปรับรูปร่าง NumPy Array NumPy Array Iterating NumPy Array เข้าร่วม NumPy Array Split ค้นหาอาร์เรย์ NumPy NumPy Array Sort ตัวกรองอาร์เรย์ NumPy

NumPyสุ่ม

สุ่มอินโทร การกระจายข้อมูล การเรียงสับเปลี่ยนแบบสุ่ม โมดูล Seaborn การกระจายแบบปกติ การกระจายทวินาม จำหน่ายปลา กระจายสม่ำเสมอ การกระจายโลจิสติกส์ การกระจายพหุนาม การกระจายแบบเอกซ์โพเนนเชียล จิสแควร์ ดิสทริบิวชั่น การกระจาย Rayleigh พาเรโต้ ดิสทริบิวชั่น การกระจาย Zipf

NumPy ufunc

ufunc Intro ufunc สร้างฟังก์ชัน ufunc เลขคณิตอย่างง่าย ufunc การปัดเศษทศนิยม ufunc บันทึก ufunc ผลรวม ufunc ผลิตภัณฑ์ ufunc ความแตกต่าง ufunc ค้นหา LCM ufunc กำลังหา GCD ufunc ตรีโกณมิติ ufunc ไฮเปอร์โบลิก ufunc Set Operations

แบบทดสอบ/แบบฝึกหัด

แบบทดสอบ NumPy แบบฝึกหัด NumPy

NumPy Array Copy เทียบกับ View


ความแตกต่างระหว่างการคัดลอกและการดู

ความแตกต่างที่สำคัญระหว่างสำเนาและมุมมองของอาร์เรย์คือ การคัดลอกเป็นอาร์เรย์ใหม่และมุมมองเป็นเพียงมุมมองของอาร์เรย์ดั้งเดิม

สำเนาเป็นเจ้าของข้อมูลและการเปลี่ยนแปลงใดๆ ที่ทำกับสำเนาจะไม่ส่งผลต่ออาร์เรย์ดั้งเดิม และการเปลี่ยนแปลงใดๆ ที่ทำกับอาร์เรย์ดั้งเดิมจะไม่ส่งผลต่อการคัดลอก

มุมมองไม่ได้เป็นเจ้าของข้อมูล และการเปลี่ยนแปลงใดๆ ที่ทำกับมุมมองจะส่งผลต่ออาร์เรย์ดั้งเดิม และการเปลี่ยนแปลงใดๆ ที่ทำกับอาร์เรย์ดั้งเดิมจะส่งผลต่อมุมมอง


สำเนา:

ตัวอย่าง

ทำสำเนา เปลี่ยนอาร์เรย์เดิม และแสดงทั้งสองอาร์เรย์:

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)

อาร์เรย์ดั้งเดิมควรได้รับผลกระทบจากการเปลี่ยนแปลงที่ทำกับมุมมอง



ตรวจสอบว่า Array เป็นเจ้าของข้อมูลหรือไม่

ดังที่กล่าวไว้ข้างต้น สำเนาเป็นเจ้าของข้อมูล และมุมมองไม่ได้เป็นเจ้าของ ข้อมูล แต่เราจะตรวจสอบได้อย่างไร

ทุกอาร์เรย์ 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คืน
มุมมองส่งคืนอาร์เรย์ดั้งเดิม


ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

ใช้วิธีการที่ถูกต้องเพื่อสร้างสำเนาอาร์เรย์

arr = np.array([1, 2, 3, 4, 5])

x = arr.