Зачем использовать np.linspace () для генерации массива интервалов, который будет использоваться функцией pd.cut () в ее параметре 'bins', когда параметр 'bins' принимает int в качестве входных данных и возвращает тот же результат?
Сейчас я изучаю навыки анализа данных на питоне из онлайн-курса и смущен методологией объединения данных.
Курс научил нас использовать np.linspace () для генерации массива интервалов с номерами срезов, а затем передать его в функцию pd.cut () с параметром 'bins'. Но я обнаружил, что могу просто ввести int для «bin» (количество интервалов) и получить тот же результат, что и при передаче массива интервалов np.linspace ().
Я прочитал в Интернете статью, в которой делается то же самое (используя np.linspace вместо того, чтобы просто вводить 'bin' int).
Какая методология стоит за этим и Что я здесь упустил? Это похоже на избыточную работу.
мой df для проверки
n = pd.DataFrame([1,5,3,4,5,5,7,2,9,10],columns = ['col'])
дать pd.cut int номер в качестве ввода (интервал номер, который я хочу 4)
n['col_cut'] = pd.cut(n['col'],bins= 4)
генерирует интервальный граничный массив с 5 разрезами (4 интервалами). Метод, изложенный в моем курсе и предложенный в некоторых статьях
bins = np.linspace(n['col'].min(),n['col'].max(),5)
n['cut_lin'] = pd.cut(n['col'],bins = bins, include_lowest = True)
номера назначаются одинаковым интервалам с использованием обоих методов.
print(n)
col col_cut cut_lin
0 1 (0.991, 3.25] (0.999, 3.25]
1 5 (3.25, 5.5] (3.25, 5.5]
2 3 (0.991, 3.25] (0.999, 3.25]
3 4 (3.25, 5.5] (3.25, 5.5]
4 5 (3.25, 5.5] (3.25, 5.5]
5 5 (3.25, 5.5] (3.25, 5.5]
6 7 (5.5, 7.75] (5.5, 7.75]
7 2 (0.991, 3.25] (0.999, 3.25]
8 9 (7.75, 10.0] (7.75, 10.0]
9 10 (7.75, 10.0] (7.75, 10.0]