首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解numpy向量化

理解numpy向量化
EN

Stack Overflow用户
提问于 2020-10-16 21:45:56
回答 1查看 45关注 0票数 0

我遇到了使用数值向量化here计算欧几里得距离的问题。完成的计算如下:

代码语言:javascript
复制
>>> tri = np.array([[1, 1],
...                 [3, 1],
...                 [2, 3]])

>>> np.sum(tri**2, axis=1) ** 0.5  # Or: np.sqrt(np.sum(np.square(tri), 1))
array([1.4142, 3.1623, 3.6056])

所以,为了理解,我试着:

代码语言:javascript
复制
>>> np.sum(tri**2, axis=1) 
array([ 2, 10, 13])

因此,基本上,tri**2对每个元素进行平方:[[1,1],[9,1],[4,9]]。接下来,我们对每个子数组元素求和以获得[1+1, 9+1, 4+9] = [2,10,13]

然后我们取每一个的平方根。

但是我不知道在公式中我们在哪里做减法qi-pi?我还觉得我们应该得到单一的值:√((1-1)^2+(9-1)^2+(4-9)^2)=9.43

我是不是错过了一些数学知识,或者对python / numpy的理解?

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 22:00:31

假设您有两个表示为np.array的向量pq

代码语言:javascript
复制
dist = np.sqrt(np.sum((q - p) ** 2))

还有一个np.linalg.norm,它计算同样的事情:

代码语言:javascript
复制
assert np.isclose(dist, np.linalg.norm(q - p))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64390458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档