บทนำ
เพื่อส่งคืนผลรวมสะสม (cumulative sum) ขององค์ประกอบอาร์เรย์ตามแกนที่กำหนด โดยถือ NaN เป็นศูนย์ ให้ใช้เมธอด numpy.nancumsum() ผลรวมสะสมไม่เปลี่ยนแปลงเมื่อเจอ NaN และ NaN นำหน้าจะถูกแทนที่ด้วยศูนย์ ส่งคืนศูนย์สำหรับสไลด์ที่เป็น NaN ทั้งหมดหรือว่างเปล่า
พารามิเตอร์แรกคืออาร์เรย์อินพุท พารามิเตอร์ที่สองคือแกนที่คำนวณผลรวมสะสม ค่าเริ่มต้น (None) คือคำนวณ cumsum บนอาร์เรย์ที่แบน (flattened) พารามิเตอร์ที่สามคือชนิดของอาร์เรย์ที่ส่งคืนและของตัวสะสม (accumulator) ที่องค์ประกอบถูกบวกกัน หาก dtype ไม่ได้ระบุ จะใช้ค่าเริ่มต้นเป็น dtype ของ a เว้นแต่ a จะมี dtype เป็นจำนวนเต็มที่มีความแม่นยำน้อยกว่าจำนวนเต็มของแพลตฟอร์มเริ่มต้น ในกรณีนั้น จำนวนเต็มของแพลตฟอร์มเริ่มต้นจะถูกใช้ พารามิเตอร์ที่สี่คืออาร์เรย์เอาต์พุททางเลือกสำหรับวางผลลัพธ์ ต้องมีรูปร่างและความยาวบัฟเฟอร์เหมือนกับเอาต์พุทที่คาดหวัง แต่ชนิดจะถูกแปลงหากจำเป็น
ขั้นตอน
ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:
import numpy as np
สร้างอาร์เรย์ NumPy โดยใช้เมธอด array() เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan:
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
แสดงอาร์เรย์:
print("อาร์เรย์ของเรา...\n", arr)
ตรวจสอบมิติ:
print("\nมิติของอาร์เรย์...\n", arr.ndim)
ดูชนิดข้อมูล:
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", arr.dtype)
เพื่อส่งคืนผลรวมสะสมขององค์ประกอบอาร์เรย์ตามแกนที่กำหนด โดยถือ NaN เป็นศูนย์ ให้ใช้เมธอด nancumsum() ผลรวมสะสมไม่เปลี่ยนแปลงเมื่อเจอ NaN และ NaN นำหน้าจะถูกแทนที่ด้วยศูนย์:
print("\nผลรวมสะสมขององค์ประกอบอาร์เรย์...\n", np.nancumsum(arr, axis=1, dtype=int))
ตัวอย่างโค้ดสมบูรณ์
import numpy as np
# สร้างอาร์เรย์ NumPy โดยใช้เมธอด array()
# เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
# แสดงอาร์เรย์
print("อาร์เรย์ของเรา...\n", arr)
# ตรวจสอบมิติ
print("\nมิติของอาร์เรย์...\n", arr.ndim)
# ดูชนิดข้อมูล
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", arr.dtype)
# เพื่อส่งคืนผลรวมสะสมขององค์ประกอบอาร์เรย์ตามแกนที่กำหนด โดยถือ NaN เป็นศูนย์ ใช้ nancumsum() เมธอด
print("\nผลรวมสะสมขององค์ประกอบอาร์เรย์...\n", np.nancumsum(arr, axis=1, dtype=int))
ผลลัพธ์
อาร์เรย์ของเรา... [[10. 20. 30.] [40. nan 60.]] มิติของอาร์เรย์... 2 ชนิดข้อมูลของออบเจกต์อาร์เรย์... float64 ผลรวมสะสมขององค์ประกอบอาร์เรย์... [[ 10 30 60] [ 40 40 100]]