205 lines
4.8 KiB
Markdown
205 lines
4.8 KiB
Markdown
# numpy 纳米棒–完整指南
|
||
|
||
> 原文:# t0]https://www . aspython . com/python-modules/num py/numpy-nanprod
|
||
|
||
你好,欢迎来到这个关于 Numpy nanprod 的教程。在本教程中,我们将学习 NumPy nanprod()方法,也将看到许多相同的例子。让我们开始吧!
|
||
|
||
***也读作:[【Numpy trunc()——返回输入的截断值,逐元素](https://www.askpython.com/python-modules/numpy/numpy-trunc)***
|
||
|
||
* * *
|
||
|
||
## 什么是 NumPy nanprod?
|
||
|
||
在 Python 中,NaN 表示的不是数字。如果我们有一个包含一些 NaN 值的数组,并且想要找到它的乘积,我们可以使用 NumPy 的`nanprod()`方法。
|
||
|
||
NumPy 中的`nanprod()`方法是一个函数,它返回通过将数组中的 NaN 值视为等于 1 而计算的数组元素的乘积。它可以是所有数组元素的乘积、沿行数组元素的乘积或沿列数组元素的乘积。
|
||
|
||
我们将在本教程的下一节看到每个例子。
|
||
|
||
* * *
|
||
|
||
## 纳米棒语法
|
||
|
||
```py
|
||
numpy.nanprod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
|
||
|
||
```
|
||
|
||
| **参数** | **描述** | **必需/可选** |
|
||
| (类似数组) | 需要其产品的输入数组。 | 需要 |
|
||
| 轴 | 沿其计算数组乘积的轴。它可以是 axis=0,即沿列,也可以是 axis=1,即沿行,或者 axis=None,这意味着要返回整个数组的乘积。 | 可选择的 |
|
||
| 数据类型 | 要返回的数组的数据类型。 | 可选择的 |
|
||
| 在外 | 放置结果的替代输出数组。它必须具有与预期输出相同的形状。 | 可选择的 |
|
||
| keepdims (bool) | 如果设置为真,减少的轴将作为尺寸为 1 的尺寸留在结果中。使用此选项,结果将根据输入数组正确传播。 | 可选择的 |
|
||
| 最初的 | 产品的起始值。 | 可选择的 |
|
||
| 在哪里 | 产品中包含的元素。 | 可选择的 |
|
||
|
||
**返回:**
|
||
一个与 *a* 形状相同的数组,该数组包含 *a* 的元素的乘积,将 NaN 值视为 1,沿给定的轴并移除指定的轴。如果 axis=None,则返回一个标量,它是整个数组的乘积。
|
||
|
||
* * *
|
||
|
||
## numpy.nanprod()的示例
|
||
|
||
`numpy.nanprod()`函数用于计算给定轴上数组元素的乘积,忽略 nan。让我们通过一些例子来看看`numpy.nanprod()`的用法。
|
||
|
||
### 使用 numpy.nanprod()的整个数组的乘积
|
||
|
||
**一维数组**
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
a = np.array([6, np.nan, 7])
|
||
product = np.nanprod(a)
|
||
print("a =", a)
|
||
print("Product of the array =", product)
|
||
|
||
```
|
||
|
||
**输出:**
|
||
|
||
```py
|
||
a = [ 6\. nan 7.]
|
||
Product of the array = 42.0
|
||
|
||
```
|
||
|
||
在上面的代码中,数组包含一个 NaN 值。在计算乘积时,`nanprod()`函数将 NaN 值视为 1,并将乘积计算为 6*1*7 = 42。
|
||
|
||
**二维数组**
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
a = np.array([[6, np.nan, 7], [np.nan, np.nan, 3]])
|
||
product = np.nanprod(a)
|
||
print("a =", a)
|
||
print("Product of the array =", product)
|
||
|
||
```
|
||
|
||
**输出:**
|
||
|
||
```py
|
||
a = [[ 6\. nan 7.]
|
||
[nan nan 3.]]
|
||
Product of the array = 126.0
|
||
|
||
```
|
||
|
||
将所有 NaN 值视为 1,乘积= 6*1*7*1*1*3 = 126。
|
||
|
||
* * *
|
||
|
||
### 沿着轴的产品
|
||
|
||
**列式产品**
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
a = np.array([[np.nan, np.nan, 4],
|
||
[5, np.nan, 10]])
|
||
|
||
# product along axis=0 i.e. columns
|
||
product = np.nanprod(a, axis=0)
|
||
print("a =", a)
|
||
print("Product of the array =", product)
|
||
|
||
```
|
||
|
||
**输出:**
|
||
|
||
```py
|
||
a = [[nan nan 4.]
|
||
[ 5\. nan 10.]]
|
||
Product of the array = [ 5\. 1\. 40.]
|
||
|
||
```
|
||
|
||
将 NaN 值视为 1,
|
||
列 0 乘积= 1*5 = 5
|
||
列 1 乘积= 1*1 = 1
|
||
列 2 乘积= 4*10 = 40
|
||
|
||
**逐行乘积**
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
a = np.array([[np.nan, np.nan, 4],
|
||
[5, np.nan, 10]])
|
||
|
||
# product along axis=1 i.e. rows
|
||
product = np.nanprod(a, axis=1)
|
||
print("a =", a)
|
||
print("Product of the array =", product)
|
||
|
||
```
|
||
|
||
**输出:**
|
||
|
||
```py
|
||
a = [[nan nan 4.]
|
||
[ 5\. nan 10.]]
|
||
Product of the array = [ 4\. 50.]
|
||
|
||
```
|
||
|
||
将 NaN 值视为 1,
|
||
第 0 行乘积= 1*1*4 = 4
|
||
第 1 行乘积= 5*1*10 = 50
|
||
|
||
* * *
|
||
|
||
## 空数组和全 NaN 数组的乘积
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
# empty arrays
|
||
a = []
|
||
b = [[]]
|
||
|
||
product_a = np.nanprod(a)
|
||
print("a =", a)
|
||
print("Product of the 1-d empty array =", product_a)
|
||
|
||
product_b = np.nanprod(b)
|
||
print("b =", b)
|
||
print("Product of the 2-d empty array =", product_b)
|
||
|
||
# all NaN array
|
||
c = [np.nan, np.nan, np.nan]
|
||
product_c = np.nanprod(c)
|
||
print("c =", c)
|
||
print("Product of the all NaN array =", product_c)
|
||
|
||
```
|
||
|
||
**输出:**
|
||
|
||
```py
|
||
a = []
|
||
Product of the 1-d empty array = 1.0
|
||
b = [[]]
|
||
Product of the 2-d empty array = 1.0
|
||
c = [nan, nan, nan]
|
||
Product of the all NaN array = 1.0
|
||
|
||
```
|
||
|
||
当对所有空数组和只包含 NaN 值的数组应用`nanprod()`方法时,它们返回 1。
|
||
|
||
* * *
|
||
|
||
## 结论
|
||
|
||
仅此而已!在本教程中,我们学习了 Numpy nanprod 方法,并使用该方法练习了不同类型的示例。
|
||
|
||
* * *
|
||
|
||
## 参考
|
||
|
||
* [NumPy nanprod 官方文档](https://numpy.org/doc/stable/reference/generated/numpy.nanprod.html) |