我有一个向量数组,并计算他们的差异与第一个的差异.使用python广播时,计算速度明显慢于通过简单循环进行计算.为什么?
import numpy as np
def norm_loop(M, v):
n = M.shape[0]
d = np.zeros(n)
for i in range(n):
d[i] = np.sum((M[i] - v)**2)
return d
def norm_bcast(M, v):
n = M.shape[0]
d = np.zeros(n)
d = np.sum((M - v)**2, axis=1)
return d
M = np.random.random_sample((1000, 10000))
v = M[0]
Run Code Online (Sandbox Code Playgroud)
%timeit norm_loop(M,v) - > 25.9 ms
%timeit norm_bcast(M,v) - > 38.5 ms
我有Python 3.6.3和Numpy 1.14.2
要在google colab中运行示例:https://drive.google.com/file/d/1GKzpLGSqz9eScHYFAuT8wJt4UIZ3ZTru/view ? usp = sharing
我是嵌入式编程的新手,想了解在功能强大的嵌入式处理器上运行 python scikit-learn 需要做什么。
以树莓派为例。