Computer >> Máy Tính >  >> Lập trình >> Python

Trả về tổng tích lũy của các phần tử mảng coi NaN là 0 trong Python

Để trả về tổng tích lũy của các phần tử mảng trên một trục nhất định coi các NaN là 0, hãy sử dụng phương thức thenancumprod (). Tổng tích lũy không thay đổi khi gặp các NaN và các NaN dồn lại được thay thế bằng các số không. Zeros được trả về cho các lát hoàn toàn là NaN hoặc trống.

Phương thức trả về một mảng mới chứa kết quả trừ khi kết quả được chỉ định, trong đó nó được trả về. Kết quả có cùng kích thước với a và cùng hình dạng với trục nếu không phải là Không có hoặc a là mảng 1-d. Tích lũy hoạt động như, 5, 5 + 10, 5 + 10 + 15, 5 + 10 + 15 + 20. Tham số đầu tiên là mảng đầu vào. Tham số thứ 2 là trục mà tổng tích lũy được tính theo đó. Mặc định (Không có) là tính toán cumsum trên mảng phẳng.

Tham số thứ 3 là kiểu của mảng được trả về và của bộ tích lũy trong đó các phần tử được tính tổng. Nếu dtype không được chỉ định, nó sẽ mặc định là dtype của a, trừ khi a có một số nguyên dtype với độ chính xác nhỏ hơn so với số nguyên nền tảng mặc định. Trong trường hợp đó, số nguyên nền tảng mặc định được sử dụng. Tham số thứ 4 là mảng đầu ra thay thế để đặt kết quả. Nó phải có hình dạng cùng tên và độ dài bộ đệm như đầu ra mong đợi nhưng kiểu sẽ được ép nếu cần.

Các bước

Đầu tiên, hãy nhập thư viện được yêu cầu -

import numpy as np

Tạo một mảng numpy bằng phương thức array (). Chúng tôi đã thêm các phần tử kiểu int với nan -

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

Hiển thị mảng -

print("Our Array...\n",arr)

Kiểm tra các thứ nguyên -

print("\nDimensions of our Array...\n",arr.ndim)

Lấy Datatype -

print("\nDatatype of our Array object...\n",arr.dtype)

Để trả về tổng tích lũy của các phần tử mảng trên một trục nhất định coi các NaN là 0, hãy sử dụng phương thức thenancumprod (). Tổng tích lũy không thay đổi khi gặp các NaN và các NaN dồn lại được thay thế bằng các số không. Zeros được trả về cho các lát hoàn toàn là NaN hoặc rỗng -

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

Ví dụ

import numpy as np

# Creating a numpy array using the array() method
# We have added elements of int type with nan
arr = np.array([10, 20, 30, 40, np.nan])

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# To return the cumulative sum of array elements over a given axis treating NaNs as zero, use the nancumprod() method
# The cumulative sum does not change when NaNs are encountered and leading NaNs are replaced by zeros.

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

Đầu ra

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.]