相关疑难解决方法(0)

Python中的"at"(@)符号有什么作用?

我正在看一些使用该@符号的Python代码,但我不知道它的作用.我也不知道搜索Python文档会搜索什么,或者当@包含符号时Google不会返回相关结果.

python syntax python-decorators

501
推荐指数
12
解决办法
26万
查看次数

两个数组之间的余弦距离计算 - Python

我想应用一个函数fn,它本质上是cosine distance对两个形状为 (10000, 100) 和 (5000, 100) 的大型 numpy 数组按行进行计算,即我计算这些数组中每个行组合的值。

我的实现:

import math
def fn(v1,v2):
    sumxx, sumxy, sumyy = 0, 0, 0
    for i in range(len(v1)):
        x = v1[i]; y = v2[i]
        sumxx += x*x
        sumyy += y*y
        sumxy += x*y
    return sumxy/math.sqrt(sumxx*sumyy)
val = []
for i in range(array1.shape[0]):
    for j in range(array2.shape[0]):
        val.append(fn(array1[i, :], array2[j, :]))
Run Code Online (Sandbox Code Playgroud)

该函数非常快,只需要几毫秒:

CPU times: user 4 ms, sys: 0 ns, total: 4 ms
Wall time: 1.24 ms
Run Code Online (Sandbox Code Playgroud)

有什么有效的方法可以做到这一点吗?

python arrays performance numpy vectorization

3
推荐指数
1
解决办法
1万
查看次数