เราทราบดีว่าการดำเนินการทางคณิตศาสตร์ระหว่างอาร์เรย์ต่างๆ จะเกิดขึ้นทุกเดือน หากอาร์เรย์มีขนาดเท่ากัน น่ากลัว จำเป็นต้องมีขนาดเฉพาะ แต่มีบางสถานการณ์ที่เราสามารถลบขนาดไม่เท่ากันและยังคงใช้การคำนวณทางคณิตศาสตร์กับพวกเขาโดยปรับปรุงหนึ่งในอาร์เรย์โดยการเติมอาร์เรย์ด้วย ndim ที่เล็กกว่าซึ่งต่อท้ายด้วย '1' ในรูปร่าง โดยทั่วไปการออกอากาศและอาร์เรย์หมายถึงการเปลี่ยนรูปร่างเป็นรูปร่างที่ต้องการ
กฎของอาร์เรย์ Boradcasting
-
อาร์เรย์ที่มี ndim เล็กกว่าอาร์เรย์อื่นๆ จะถูกนำหน้าด้วย '1' ในรูปร่าง
-
ขนาดในแต่ละมิติของรูปร่างผลลัพธ์คือขนาดสูงสุดของอินพุตในมิตินั้น
-
อินพุตสามารถใช้ในการคำนวณได้ หากขนาดของข้อมูลในมิติใดมิติหนึ่งตรงกับขนาดเอาต์พุตหรือค่าของมันคือ 1 เท่านั้น
-
ถ้าอินพุตมีขนาดมิติเท่ากับ 1 การป้อนข้อมูลแรกในมิตินั้นจะถูกใช้สำหรับการคำนวณทั้งหมดตามมิตินั้น
ตัวอย่าง
ตัวอย่างด้านล่างแสดงให้เห็นว่าการออกอากาศเกิดขึ้นได้อย่างไรระหว่างการจัดการอาร์เรย์โดยใช้อาร์เรย์ numpy
import numpy as np a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]]) b = np.array([1.0,2.0,3.0]) print 'First array:' print a print '\n' print 'Second array:' print b print '\n' print 'First Array + Second Array' print a + b
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
First array: [ [ 0. 0. 0.] [ 10. 10. 10.] [ 20. 20. 20.] [ 30. 30. 30.] ] Second array: [ 1. 2. 3.] First Array + Second Array [ [ 1. 2. 3.] [ 11. 12. 13.] [ 21. 22. 23.] [ 31. 32. 33.] ]