Одна и та же переменная, полученная с помощью функции округления, разные результаты при двойной печатиPython

Программы на Python
Anonymous
Одна и та же переменная, полученная с помощью функции округления, разные результаты при двойной печати

Сообщение Anonymous »


Мой полный код выглядит следующим образом: версия Python — 3.8.12

импортировать xgboost как xgb из sklearn.model_selection импорт train_test_split импортировать панд как pd импортировать numpy как np # Получение набора данных, метод 1 из sklearn.datasets импорт load_boston Бостон = load_boston() X = Бостон.данные y = бостон.цель # Получение набора данных, способ 2 data_url = "http://lib.stat.cmu.edu/datasets/boston" # raw_df = pd.read_csv(data_url, sep="\s+",skiprows=22, header=None) # X = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]]) # y = raw_df.values[1::2, 2] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2, случайное_состояние=42) dtrain = xgb.DMatrix(X_train, label=y_train) dtest = xgb.DMatrix(X_test, label=y_test) model = xgb.train({'objective': 'reg:squarederror'}, dtrain) y_pred = model.predict(dtest) mean_col1 = round(y_test.mean(), 4) mean_col2 = round(y_pred.mean(), 4) # первая печать печать (среднее_столбец1, среднее_столбец2) # второй отпечаток print(f"Средняя реальная цена: {mean_col1}, прогнозируемая средняя цена: {mean_col2}") выход

21.4882 20.5224 средняя реальная цена: 21,4882, средняя прогнозируемая цена: 20,52239990234375 Мой вопрос: почему последнее число не сохраняется до четырех десятичных знаков.

В первый раз, когда я напечатал mean_col2, он был сохранен с точностью до четырех десятичных знаков, но во второй раз, когда я напечатал его, это была, очевидно, та же переменная, но я не смог получить тот же результат.

Я пробовал это в файлах Jupyter Notebook, ipython и py, и результаты те же. И это произошло только с mean_col2.

Подскажите пожалуйста в чем причина и как ее решить, заранее спасибо.

Вернуться в «Python»