Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tính tổng tích lũy mảng theo trục 1 coi NaN như 0 trong Python


Để trả về tổng tích lũy của các phần tử mảng trên trục cho trước, coi NaN như 0, dùng numpy.nancumsum(). Tổng tích lũy không thay đổi khi gặp NaN, NaN đầu được thay bằng 0. Trả về 0 cho lát cắt toàn NaN hoặc rỗng. Tham số 1: mảng đầu vào. Tham số 2: trục tính tổng (mặc định None - làm phẳng). Tham số 3: dtype kết quả và bộ tích lũy. Tham số 4: mảng đầu ra thay thế.

Các bước thực hiện

Nhập NumPy:

import numpy as np

Tạo mảng 2D có NaN:

arr = np.array([[10, 20, 30], [40, np.nan, 60]])

Hiển thị mảng:

print("Mảng của chúng ta...\n", arr)

Kiểm tra số chiều:

print("\nSố chiều của mảng...\n", arr.ndim)

Lấy kiểu dữ liệu:

print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)

Tính tổng tích lũy theo trục 1:

print("\nTổng tích lũy các phần tử mảng...\n", np.nancumsum(arr, axis=1))

Ví dụ hoàn chỉnh

import numpy as np

arr = np.array([[10, 20, 30], [40, np.nan, 60]])

print("Mảng của chúng ta...\n", arr)
print("\nSố chiều của mảng...\n", arr.ndim)
print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)
print("\nTổng tích lũy các phần tử mảng...\n", np.nancumsum(arr, axis=1))

Kết quả đầu ra

Mảng của chúng ta...
[[10. 20. 30.]
 [40. nan 60.]]
Số chiều của mảng...
2
Kiểu dữ liệu của đối tượng mảng...
float64
Tổng tích lũy các phần tử mảng...
[[ 10.  30.  60.]
 [ 40.  40. 100.]]