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

Trả về sản phẩm tích lũy coi NaN là một nhưng thay đổi loại kết quả bằng Python

Để trả về sản phẩm 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à một, hãy sử dụng phương thức nancumprod (). Tích lũy không thay đổi khi gặp các NaN và các Na dẫn đầu được thay thế bằng các NaN. Các số thứ tự đượ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ả được trả về trừ khi được chỉ định out, trong trường hợp đó nó được trả về. Các tác phẩm tích lũy 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ích lũy được tính theo đó. Theo mặc định, đầu vào được làm phẳng.

Tham số thứ 3 là kiểu của mảng được trả về, cũng như của bộ tích lũy trong đó các phần tử được nhân lên. Nếu dtype không được chỉ định, nó sẽ mặc định là dtype của a, trừ khi a có một dtype số nguyên với độ chính xác nhỏ hơn giá trị của 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 thay thế.

Tham số thứ 4 là mảng đầu ra thay thế để đặt kết quả. Nó phải có cùng hình dạng và độ dài bộ đệm như đầu ra mong đợi nhưng kiểu của các giá trị kết quả sẽ được truyền nếu cần.

Các bước

Đầu tiên, hãy nhập các 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([[5, 10, 15], [20, np.nan, 30]])

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í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à một, hãy sử dụng phương thức nancumprod (), Tích lũy không thay đổi khi gặp các NaN và các NaN hàng đầu được thay thế bằng các NaN -

print("\nCumulative Product of array elements...\n",np.nancumprod(arr, axis = 1, dtype = int))

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([[5, 10, 15], [20, np.nan, 30]])

# 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 product of array elements over a given axis treating NaNs as one, use the nancumprod() method
# The cumulative product does not change when NaNs are encountered and leading NaNs are replaced by ones.
print("\nCumulative Product of array elements...\n",np.nancumprod(arr, axis = 1, dtype = int))

Đầu ra

Our Array...
[[ 5. 10. 15.]
[20. nan 30.]]

Dimensions of our Array...
2

Datatype of our Array object...
float64

Cumulative Product of array elements...
[[ 5 50 750]
[ 20 20 600]]