如何||a - b||_1 = sum(|a_i - b_i|)
在Python中计算两个向量差异的1范数?
a = [1,2,3,4]
b = [2,3,4,5]
||a - b||_1 = 4
Run Code Online (Sandbox Code Playgroud)
big*_*ose 28
Python具有强大的内置类型,但Python列表不是数学向量或矩阵.你可以用列表来做这件事,但除了琐碎的操作之外,它可能很麻烦.
如果你发现自己经常需要向量或矩阵运算,那么该领域的标准就是NumPy,它可能已经像Python一样为你的操作系统打包了.
我分享了其他人对你正在尝试做什么的困惑,但也许numpy.linalg.norm函数会有所帮助:
>>> import numpy
>>> a = numpy.array([1, 2, 3, 4])
>>> b = numpy.array([2, 3, 4, 5])
>>> numpy.linalg.norm((a - b), ord=1)
4
Run Code Online (Sandbox Code Playgroud)
为了说明这是如何在幕后工作:
>>> a
array([1, 2, 3, 4])
>>> b
array([2, 3, 4, 5])
>>> (a - b)
array([-1, -1, -1, -1])
>>> numpy.linalg.norm((a - b))
2.0
>>> numpy.linalg.norm((a - b), ord=1)
4
Run Code Online (Sandbox Code Playgroud)
kqu*_*inn 10
在NumPy的,两个向量a
和b
,这只是
numpy.linalg.norm(a - b, ord=1)
Run Code Online (Sandbox Code Playgroud)
您似乎要求两个数组的配对组件之间的差异总和:
>>> A=[1,2,3,4]
>>> B=[2,3,4,5]
>>> sum(abs(a - b) for a, b in zip(A, B))
4
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚这里到底需要什么,但这是我的猜测
a=[1,2,3,4]
b=[2,3,4,5]
def a_b(a,b):
return sum(map(lambda a:abs(a[0]-a[1]), zip(a,b)))
print a_b(a,b)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35116 次 |
最近记录: |