ภาพรวม
ใช้ numpy.nancumsum() คำนวณ cumulative sum ตาม axis=1 โดยถือ NaN เป็น 0 cumulative sum ไม่เปลี่ยนเมื่อเจอ NaN leading NaN กลายเป็น 0
หมายเหตุ: บทความต้นฉบับอ้าง nancumprod() ผิด ควรเป็น nancumsum()
พารามิเตอร์
a: อาร์เรย์อินพุทaxis: axis ที่คำนวณ (default None = flattened)dtype(optional): dtype ของผลลัพธ์และ accumulatorout(optional): อาร์เรย์ output ทางเลือก
ขั้นตอนการทำงาน
1. นำเข้า NumPy
import numpy as np
2. สร้างอาร์เรย์ 2D พร้อม NaN
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
3. แสดงข้อมูลอาร์เรย์
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)
4. คำนวณ cumulative sum ตาม axis=1
print("\nCumulative Sum of array elements...\n", np.nancumsum(arr, axis=1))
ตัวอย่างโค้ดเต็ม
import numpy as np
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)
print("\nCumulative Sum of array elements...\n", np.nancumsum(arr, axis=1))
ผลลัพธ์
Our Array... [[10. 20. 30.] [40. nan 60.]] Dimensions of our Array... 2 Datatype of our Array object... float64 Cumulative Sum of array elements... [[ 10. 30. 60.] [ 40. 40. 100.]]
คำอธิบาย: Row 1: 10, 30, 60 (ปกติ) Row 2: 40, 40+NaN(=0)=40, 40+60=100