2

可以使用以下代码创建 [0,0.5) 形式的半开区间:

rv = np.linspace(0., 0.5, nr, endpoint=False)

其中 nr 是区间中的点数。

问题:如何使用 linspace 创建形式为 (a,b) 的开区间或形式为 (a,b] 的半开区间?

4

1 回答 1

2

可能最简单的方法(因为这个功能没有内置到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])
于 2020-07-06T16:19:46.460 回答