Обмен подробностями данных здесь -
набор данных содержит 116 столбцов и 30229 строк.набор данных dtype = датафрейм.Последний столбец является зависимой переменной, в то время как все остальные являются независимой переменной.
X, Y - float64 и int64 соответственно.train и test являются объектом со значением value = ndarray объекта numpy модуля.
Я определил математическую функцию для евклидова расстояния = ((x1-x2) ^ 2 + (y1-y2) ^ 2 + ....) ^ 1 / 2.
Iсталкиваюсь с проблемой в последней строке кода - получаю ошибку "IndexError: слишком много индексов для массива для numpy".Даже если я просто набираю train [0] или train [0] [0], ошибка остается той же.
Пожалуйста, помогите мне с решением.Пожалуйста, дайте мне знать, если вам нужно больше деталей.
Код - `
import numpy as np
import pandas as pd
import math as mt
import matplotlib.pyplot as plt
dataset = pd.read_csv('Quote_Viewed_Doc_Updated.csv')
X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,115].values
#splitting into Test and Train
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 1/3, random_state = 0)
# 1) given two data points, calculate the euclidean distance between them
def get_distance(data1, data2):
points = zip(data1, data2)
diffs_squared_distance = [pow(a - b, 2) for (a, b) in points]
return mt.sqrt(sum(diffs_squared_distance))
# reformat train/test datasets for convenience
train = np.array(zip(X_train,y_train))
test = np.array(zip(X_test, y_test))
get_distance(train[0][0], train[1][0])
`