Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คำนวณผลรวมสะสมของอาร์เรย์ โดยถือ NaN เป็นศูนย์ใน Python

เพื่อคำนวณผลรวมสะสม (cumulative sum) ขององค์ประกอบอาร์เรย์ตามแกนที่กำหนด โดยถือค่า NaN ว่าเป็นศูนย์ ให้ใช้เมธอด numpy.nancumsum() ผลรวมสะสมจะไม่เปลี่ยนแปลงเมื่อเจอ NaN และ NaN นำหน้าจะถูกแทนที่ด้วยศูนย์ สไลด์ที่เป็น NaN ทั้งหมดหรือว่างเปล่าจะคืนค่าศูนย์

พารามิเตอร์สำคัญ

  • a (พารามิเตอร์แรก): อาร์เรย์อินพุต
  • axis (พารามิเตอร์ที่สอง): แกนที่คำนวณผลรวมสะสม ค่าเริ่มต้น None คือคำนวณบนอาร์เรย์แบน (flattened)
  • dtype (พารามิเตอร์ที่สาม): ชนิดข้อมูลของอาร์เรย์ผลลัพธ์และตัวสะสม หากไม่ระบุ จะใช้ dtype ของ a
  • out (พารามิเตอร์ที่สี่): อาร์เรย์เอาต์พุททางเลือก ต้องมีรูปร่างและความยาวบัฟเฟอร์เหมือนกัน

ขั้นตอนการใช้งาน

import numpy as np

สร้างอาร์เรย์พร้อมค่า NaN

arr = np.array([10, 20, 30, 40, np.nan])
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)

คำนวณผลรวมสะสมโดยละเว้น NaN

print("\nCumulative Sum of array elements...\n", np.nancumsum(arr))

โค้ดตัวอย่างสมบูรณ์

import numpy as np

arr = np.array([10, 20, 30, 40, np.nan])
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))

ผลลัพธ์ที่คาดหวัง

Our Array...
[10. 20. 30. 40. nan]
Dimensions of our Array...
1
Datatype of our Array object...
float64
Cumulative Sum of array elements...
[ 10.  30.  60. 100. 100.]