我正在尝试对一个非常简单的操作进行矢量化处理,但是似乎无法弄清楚该怎么做。
给定一个非常大的数值向量(超过1M个位置)和另一个具有给定位置位置的大小为n的数组,我想返回一个大小为n的向量,其元素为第一个向量的平均值根据第二个
a = np.array([1,2,3,4,5,6,7])
b = np.array([[0,1],[2],[3,5],[4,6]])
c = [1.5,3,5,6]
我需要重复多次此操作,因此性能是一个问题。
香草python解决方案:
import numpy as np
import time
a = np.array([1,2,3,4,5,6,7])
b = np.array([[0,1],[2],[3,5],[4,6]])
begin = time.time()
for i in range(100000):
c = []
for d in b:
c.append(np.mean(a[d]))
print(time.time() - begin, c)
# 3.7529971599578857 [1.5, 3.0, 5.0, 6.0]
答案 0 :(得分:1)
我不确定这是否一定会更快,但您也可以尝试:
$('#foo-1')