开区间(a,b)和半开区间(a,b]使用Python的linspace

Open interval (a,b) and half-open interval (a,b] using Python's linspace

可以使用以下代码创建 [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])