首页 > 解决方案 > 在 Numpy 或 Pandas 中分割 Linspace

问题描述

pandas 中的 linspace 如何拆分范围内的值。

在给定的代码中,我将范围从 1 t0 10 拆分。如果我们手动拆分这些值,假设我将执行 (1+10)//5 == 2.2。pandas 如何以 2.25 的间隔将其拆分

import pandas as pd
import numpy as np

ser = pd.Series(np.linspace(1,10,5))
print(ser)
0          1.00

1          3.25

2          5.50

3          7.75

4          10.00

dtype: float64

标签: pythonpandasnumpy

解决方案


您的“手动拆分”不正确。首先,要找到两个端点之间的差异,你应该做减法,而不是加法,例如abs(1 - 10),不是1 + 10

此外,虽然你有 5 分,但实际上只有四个区间:第 1 到第 2、第 2 到第 3、第 3 到第 4、第 4 到第 5。

因此,正确的计算是abs(1 - 10) / 4= (10 - 1) / 4= 9 / 4= 2.25

更一般地,分割距离np.linspace(a, b, n)

abs(a - b) / (n - 1)

推荐阅读