Попытка рассчитать норму L1 без использования каких-либо пакетов в python
Допустим, что у меня есть вектор: l = [2.34, 3.32, 6.32, 2.5, 3,3, 5.32]
И я хочу найти L1 этого вектора без каких-либо пакетов:
Я подсчитал
mean = sum(l) / float(len(l)
variance = sum(pow(x-mean, 3) for x in l) / len(l)
normalized = [(x-mean)/std for x in l]
Как получить L1-Norm
Вы можете получить норму L1 следующим образом:
sum(map(abs, l))
# 25.8
Чтобы проверить (используя Numpy):
import numpy as np
np.linalg.norm(l, 1)
# 25.800000000000001
linalg.norm
определяется как норма вектора L1 - как здесь . @RafaelC, ты прав, я делал L2.
Используя встроенный math
модуль, норма $ L ^ 1 $ будет:
L1 = sum([math.fabs(x) for x in l])
L1 = sum(map(math.fabs,l))
numpy
?