Witam, w czasie pisania programu w pythonie, napotkałem na problem zawarty w temacie, Moim zadaniem jest policzenie odleglosci Czybyszewa w przestrzeni czterowymiarowej, w tym celu utworzyłem sobie listę w której mam punkty i chciałbym policzyć poszczególne odległości pomiędzy danym punktem a obiektem z listy, który posiada 5 atrybutów z czego tylko 4 są kluczowe do obliczeń, poniżej kod dla klasy Iris:
class Iris:
def __init__(self, sLen, sWid, pLen, pWid, kind):
self.sepalLen = sLen
self.sepalWid = sWid
self.petalLen = pLen
self.petalWid = pWid
self.kind = kind
# Iris container
listOfFlowers = []
Poniżej funkcja odpowiedzialna za liczenie odległości, iris to przekazywany kontener z irysami, natomiast moim problemem jest jak przekształcić poszczególne pola odpowiadające długościom i szerokościom w wektor, gdyż funkcja distance.chybyshev jako parametry przyjmuję właśnie wektory:
Computes the Chebyshev distance between two 1-D arrays u and v, which is defined as
Parameters:
u : (N,) array_like
Input vector.
v : (N,) array_like
Input vector.
Czyli jak rozumiem by użyć tej funkcji muszę posiadać wektory:
a = (1, 2, 3, 4)
b = (1, 2, 3, 4)
dist = distance.chebyshev(a, b)
Punkt jest reprezentowany jako :
points = [[], [], []]
a wywolanie chcialbym aby wygladalo
distance_chybyshev(points[1], listOfFlowers, 1)
Pytanie jedynie jak przedstawić poszczególne 4 pola kolejnych obiektów w kontenerze jako wektory.
def distance_chebyshev(point, iris, stage):
iris = Iris()
total = 100
for obj in iris:
value = distance.chebyshev(point, obj)
if value < total:
total = value
iris = obj
else:
continue
return iris
Kod powyżej to szkic, niestety nie wiem jak rozwiązać ten problem. Z góry dzięki za jakiekolwiek naprowadzenie na właściwy tor .