说明
NumPy 教程 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
常量是指在程序的整个运行过程中值保持不变的量。NumPy 的常量包括 np.e、np.pi、 np.inf、 np.nan、np.NINF、np.PZERO/np.NZERO、np.euler_gamma、np.newaxis 等。
常用的有:
常量 | 说明 |
---|---|
numpy.Inf | (正)无穷大 |
numpy.nan | 空值、非数值 |
numpy.pi | 圆周率 π, pi=3.14159265... |
numpy.e | 自然数 e |
numpy.euler_gamma | 欧拉常数 γ=0.577215... |
无穷大 np.Inf 还有其他几个别名:np.Inf、np.Infinity、np.PINF、np.infty,两个无穷大的值是相等的。
# inf
np.inf
# 它是一个浮点型
type(np.inf)
# float
NumPy 执行 IEEE 算术二进制浮点标准(IEEE 754),这意味着非数字不等于无穷大。 同样,正无限不等于负无限,但是无穷大等于正无穷大。
np.inf == +np.inf
# True
np.inf == -np.inf
# False
np.inf + 1
# inf
np.inf * 1
# inf
np.inf/np.inf
# nan
np.inf+(-np.inf)
# nan
np.array([np.inf])/0
# array([inf])
一些常见的关于无穷值的判断:
a = np.array([np.inf, -np.inf, 1])
# 显示哪些元素是正无穷大或负无穷大
np.isinf(a) # array([ True, True, False])
# 显示哪些元素为正无穷大
np.isposinf(a) # array([ True, False, False])
# 显示哪些元素不是数字
np.isnan(a) # array([False, False, False])
# 显示哪些元素为负无穷大
np.isneginf(a) # array([False, True, False])
# 显示哪些元素是有限的
np.isfinite(a) # array([False, False, True])
IEEE 754 标准中非数字(NaN,Not a Number)的浮点表示,代表没有值。NaN 和NAN 是 nan 的等效定义,一般请使用 nan,而不是 NAN。
# 浮点类型
type(np.nan)
# float
np.nan
# nan
np.nan == np.inf
# False
np.log(-1)
# nan
np.log([-1, 1, 2]) # RuntimeWarning: invalid value
# array([ NaN, 0. , 0.69314718])
两个常见的操作:
a = np.array([1, 2, np.nan])
# 显示哪些元素不是数字
np.isnan(a) # array([False, False, True])
# 显示哪些元素是有限的
np.isfinite(a) # array([ True, True, False])
圆周率 π 的值,值为 pi = 3.1415926535897932384626433… ,它是一个浮点:
type(np.pi)
# float
np.pi
# 3.141592653589793
自然数 e 有时称它为欧拉数(Euler number)、纳皮尔常数,自然对数函数的底数。值为 e = 2.71828182845904523536028747135266249775724709369995…
type(np.e)
# float
np.e
# 2.718281828459045
欧拉常数又称欧拉-马斯克若尼常数,,值为 γ = 0.5772156649015328606065120900824024310421…
type(np.e)
# float
np.euler_gamma
# 0.5772156649015329
以下几个非常用的常量,会的后继的操作中详细介绍用法。
None 的便捷别名,对索引数组很有用。为便于将数组形状与表达式和赋值轻松匹配,可以在数组索引中使用 np.newaxis 对象添加大小为1的新尺寸。
newaxis is None
# True
x = np.arange(3)
x
# array([0, 1, 2])
x[:, np.newaxis]
'''
array([[0],
[1],
[2]])
'''
x[:, np.newaxis, np.newaxis]
'''
array([[[0]],
[[1]],
[[2]]])
'''
x[:, np.newaxis] * x
'''
array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4]])
'''
负零的浮点表示。NumPy 按 IEEE 算术二进制浮点标准(IEEE 754),负零被视为有限数。
np.NZERO
# -0.0
np.PZERO
# 0.0
np.isfinite([np.NZERO])
# array([ True])
np.isnan([np.NZERO])
# array([False])
np.isinf([np.NZERO])
# array([False])
正零的浮点表示,正零被视为有限数。
np.PZERO
# 0.0
np.NZERO
# -0.0
np.isfinite([np.PZERO])
# array([ True])
np.isnan([np.PZERO])
# array([False])
np.isinf([np.PZERO])
# array([False])
NumPy 使用 IEEE 算术二进制浮点标准(IEEE 754),这意味着非数字不等于无穷大。 同样,正无限不等于负无限,但是无穷大等于正无穷大。
np.NINF
# -inf
np.log(0)
# -inf
更新时间:2020-12-29 23:39:56 标签:numpy 常量