NumPy 2.x 完全指南【九】常量
文章目录
- 1. 概述
- 2. pi(圆周率)
- 3. e(欧拉数)
- 4. euler_gamma(欧拉-马歇罗尼常数)
- 5. inf(无穷大)
- 6. nan(非数字)
- 7. newaxis(None)
1. 概述
NumPy
提供了一系列预定义的数学和科学计算常量,比如像 π
、 e
等经常会用到的常数,在需要使用时可直接通过 numpy
模块访问:
常量名称 | 描述 | 值(示例) |
---|---|---|
np.pi | 圆周率 | 3.141592653589793 |
np.e | 自然对数的底(欧拉数) | 2.718281828459045 |
np.euler_gamma | 欧拉-马歇罗尼常数 | 0.5772156649015329 |
np.inf | 正无穷大 | inf |
np.NINF | 负无穷大 | -inf |
np.nan | 非数字(无效值) | nan |
np.PZERO | 正零 | +0.0 |
np.NZERO | 负零 | -0.0 |
np.newaxis | 增加数组维度的别名 | None |
2. pi(圆周率)
numpy.pi
:圆周率 π
,精度为双精度浮点数(float64
)。
示例:
import numpy as npp = np.pi
print(p) # 3.141592653589793
print(type(p)) # <class 'float'>radius = 5 # 半径
area = p * radius ** 2 # 计算圆面积
print(area) # 78.53981633974483
3. e(欧拉数)
numpy.e
:自然对数的底(自然常数、欧拉数),精度为双精度浮点数。
示例:
e = np.e
print(e) # 2.718281828459045
print(type(e)) # <class 'float'>exponential = np.e ** 2
print(exponential) # 7.3890560989306495
4. euler_gamma(欧拉-马歇罗尼常数)
numpy.euler_gamma
:欧拉-马歇罗尼常数。
示例:
eg = np.euler_gamma
print(eg) # 0.5772156649015329
print(type(eg)) # <class 'float'>
5. inf(无穷大)
numpy.inf
:正无穷大。
-numpy.inf
:负无穷大。
示例:
inf = np.inf
print(inf) # inf
print(type(inf)) # <class 'float'>_inf = -np.inf
print(_inf) # -inf
print(type(_inf)) # <class 'float'>
Python
遵循 IEEE 754
浮点数标准,将 inf
视为浮点数类型的一部分:
- 正无穷大:
inf
- 负无穷大:
-inf
- 非数字:
NaN
NumPy
提供了检测数组中的无穷大元素的相关函数,返回值为布尔数组(True
表示对应位置是无穷大):
numpy.isinf
:检测数组中所有无穷大元素(包括正无穷和负无穷)。numpy.isposinf
:检测数组中的正无穷大元素(不包括负无穷)。numpy.isneginf
:检测数组中的负无穷大元素(不包括正无穷)。
示例:
# 检测数组中所有无穷大元素
arr = np.array([1, 2, np.inf, -np.inf, np.nan])
print(np.isinf(arr)) # 输出:[False False True True False]# 检测数组中的正无穷大元素
print(np.isposinf(arr)) # 输出:[False False True False False]# 检测数组中的负无穷大
print(np.isneginf(arr)) # 输出:[False False False True False]# 检测数组中的非数字
print(np.isnan(arr)) # 输出:[False False False False True]# 检测数组中的有限值
print(np.isfinite(arr)) # 输出:[ True True False False False]
6. nan(非数字)
numpy.nan
:非数字(Not a Number
),表示未定义或不可表示的值。
示例:
nan = np.nan
print(nan) # nan
print(type(nan)) # <class 'float'>arr = np.array([1, 2, np.nan])
print(np.isnan(arr)) # 输出: [False False True]
相关函数:
numpy.isnan
:检测数组中的非数字。numpy.isfinite
:检测数组中的有限值(既不是inf
、-inf
也不是NaN
)。
示例:
# 检测数组中所有无穷大元素
arr = np.array([1, 2, np.inf, -np.inf, np.nan])# 检测数组中的非数字
print(np.isnan(arr)) # 输出:[False False False False True]# 检测数组中的有限值
print(np.isfinite(arr)) # 输出:[ True True False False False]
7. newaxis(None)
numpy.newaxis
:特殊常量,用于在数组操作中增加新的维度,作用等价于 None
。
示例:
# 验证 newaxis 是 None 的别名
np.newaxis is None # 输出: Truex = np.arange(3) # 输出: array([0, 1, 2])
#
# 增加新维度(列向量)
x[:, np.newaxis] # 输出: array([[0], [1], [2]])# 多维扩展
x[:, np.newaxis, np.newaxis] # 输出: array([[[0]], [[1]], [[2]]])