เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor ในบท Numpy Array Iterating
การทำซ้ำอาร์เรย์
การทำซ้ำหมายถึงการผ่านองค์ประกอบหนึ่งต่อหนึ่ง เมื่อเราจัดการกับอาเรย์หลายมิติในแบบ numpy เราสามารถทำได้โดยใช้พื้นฐานสำหรับลูป(loop)ของไพธอน
ถ้าเราวนซ้ำใน 1-D array มันจะผ่านแต่ละองค์ประกอบทีละตัว
ทำซ้ำอาร์เรย์ 2-D
ในอาเรย์แบบสองมิติมันจะผ่านทุกแถว
ตัวอย่าง
ถ้าเราวนซ้ำในอาร์เรย์ n-D มันจะผ่านมิติที่ n-1 ทีละหนึ่ง
import numpy as np |
ผลลัพธ์
ในการส่งคืนค่าที่แท้จริงสเกลาร์เราจะต้องวนซ้ำอาร์เรย์ในแต่ละมิติ
1 |
ทำซ้ำอาร์เรย์ 3-D
ในอาเรย์แบบสามมิติมันจะผ่านอาร์เรย์ 2 มิติทั้งหมด
ตัวอย่าง
import numpy as np |
ผลลัพธ์
x represents the 2-D array: |
การทำซ้ำอาร์เรย์โดยใช้ nditer ()
function nditer () เป็นฟังก์ชั่นช่วยเหลือที่สามารถใช้งานได้ตั้งแต่ขั้นพื้นฐานไปจนถึงขั้นสูงมาก มันสามารถแก้ปัญหาพื้นฐานบางอย่างที่เราเผชิญในการทำซ้ำปล่อยให้มันผ่านไปด้วยตัวอย่าง
ตัวอย่าง
import numpy as np |
ผลลัพธ์
1 |
การวนซ้ำในแต่ละองค์ประกอบสเกลาร์
โดยพื้นฐานแล้วสำหรับลูปการวนซ้ำของสเกลาร์แต่ละอันที่เราจำเป็นต้องใช้ n สำหรับลูปซึ่งยากที่จะเขียนสำหรับอาร์เรย์ที่มีมิติสูงมาก การทำซ้ำอาร์เรย์ด้วยชนิดข้อมูลที่แตกต่างกัน เราสามารถใช้อาร์กิวเมนต์ op_dtypes และส่งผ่านประเภทข้อมูลที่ต้องการเพื่อเปลี่ยนประเภทข้อมูลขององค์ประกอบในขณะที่วนซ้ำ
NumPy ไม่เปลี่ยนประเภทข้อมูลขององค์ประกอบในนั้นได้ (ที่องค์ประกอบอยู่ในอาร์เรย์) ดังนั้นจึงต้องมีพื้นที่อื่นเพื่อดำเนินการนี้ พื้นที่พิเศษที่เรียกว่าบัฟเฟอร์และเพื่อให้สามารถใช้งานได้ใน nditer () เรา pass flags = ['buffered']
ตัวอย่าง
การวนซ้ำผ่านสตริง
import numpy as np |
ผลลัพธ์
b'1' |
Iteration ที่ระบุโดยใช้ ndenumerate ()
การแจกเเจง หมายถึงการพูดถึงหมายเลขลำดับของสิ่งใดสิ่งหนึ่งต่อหนึ่งครั้ง บางครั้งเราต้องการดัชนีที่สอดคล้องกันกับองค์ประกอบ ในขณะที่วนซ้ำเมธอด ndenumerate () สามารถใช้กับ usecases เหล่านั้นได้
ตัวอย่าง
import numpy as np |
ผลลัพธ์
(0,) 1 |
ก็จบกันไปอีกหนึ่งบทเเล้วนะครับ ในบทนี้จะค่อนข้างเข้าใจยากนิดนึง เเต่ก็สามารถผ่านต่อไปได้ครับ สู้ๆครับ
แปลจากhttps://www.w3schools.com/python/numpy_array_iterating.asp
Tag ที่น่าสนใจ: numpy array iterating python multidimensional_array nditer programming loop data_types buffered programming_tutor array_operations
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM