python 两个大型二维列表之间的快速均方误差

标签 python performance mean-square-error

我想计算两个非常大的二维数组之间的均方误差。

x1 = [1,2,3]
x2 = [1,3,5]
x3 = [1,5,9]
x = [x1,x2,x3]
y1 = [2,3,4]
y2 = [3,4,5]
y3 = [4,5,6]
y = [y1,y2,y3]

预期结果是大小为 3 的向量:

[mse(x1,y1), mse(x2,y2), mse(x3,y3)]

目前,我正在使用 sklearn.metrics.mean_squared_error :

mses = list(map(mean_squared_error, x, y))

这需要非常长的时间,因为 xi 和 yi 的实际长度是 115,并且 x/y 中有超过一百万个向量。

最佳答案

您可以使用 numpy。

a = np.array(x) # your x
b = np.array(y) # your y
mses = ((a-b)**2).mean(axis=1)

如果您想使用 xy

a = np.random.normal(size=(1000000,100))
b = np.random.normal(size=(1000000,100))
mses = ((a-b)**2).mean(axis=1)

根据您指定的矩阵大小 (1 000 000 x 100),这在我的机器上只需要不到一秒的时间。

关于python 两个大型二维列表之间的快速均方误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51435992/

相关文章:

python - Nautilus 右键单击​​菜单中的子菜单项

python - 创建包含前 100 个素数的列表时出现无尽错误

Python复制较大的文件太慢

android - ListView 在 4.2 上的性能低于 4.1

python - Keras 的 MSE 损失函数显示与 Tensorflow 的 MSE 指标不同的输出?

python - Numpy中的均方误差?

python - 类型错误 : ObjectId ('' ) is not JSON serializable

python - Django 跨 View 获取上下文数据

python - 为什么均方误差对于角度数据不起作用?

javascript - javascript 和 python 时间戳有什么区别?