可以使用以下代码创建 [0,0.5) 形式的半开区间:
rv = np.linspace(0., 0.5, nr, endpoint=False)
其中 nr 是区间中的点数。
问题:如何使用 linspace 创建形式为 (a,b) 的开区间或形式为 (a,b] 的半开区间?
可能最简单的方法(因为这个功能没有内置到np.linspace()
)是只切片你想要的。假设您对间距为 0.1 的区间 [0,1] 感兴趣。
>>> import numpy as np
>>> np.linspace(0, 1, 11) # [0,1]
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
>>> np.linspace(0, 1, 11-1, endpoint=False) # [0,1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
>>> np.linspace(0, 1, 11)[:-1] # [0,1) again
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
>>> np.linspcae(0, 1, 11)[1:] # (0,1]
array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
>>> np.linspace(0, 1, 11)[1:-1] # (0,1)
array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])