我对 python numpy 很陌生。
如果我有一个 numpy 向量列表。确保计算速度快的最佳方法是什么?
我目前正在这样做,但我发现它太慢了。
vec = sum(list of numpy vectors) # 4 vectors of 500 dimensions each
使用 sum 确实会占用相当多的时间。
最佳答案
这就是您想要做的(但是使用更大的数组)吗?
In [193]: sum([np.ones((2,3)),np.arange(6).reshape(2,3)])
Out[193]:
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
每个 500 个维度
是一个不清楚的描述。您的意思是形状为 (500,)
的数组还是 ndim==500
的数组?如果是后者,总共有多少个元素。
事实上,它是由 4 个数组组成的列表,这应该不是什么大问题。 array1 + array2
的时间是几点?
如果每个数组只有 500 个元素,则总时间很短:
In [195]: timeit sum([np.arange(500),np.arange(500),np.arange(500),np.arange(500)])
10000 loops, best of 3: 20.9 µs per loop
另一方面,具有许多小维度的数组的总和会更慢,因为这样的数组要大得多
In [204]: x=np.ones((3,)*10)
In [205]: timeit z=sum([x,x,x,x])
1000 loops, best of 3: 1.6 ms per loop
关于python - 使用 numpy 添加多个 ndarry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37766012/