我正在寻找一种快速实现,在Python中将两个十进制向量相乘。我试着制作两个列表,然后将它们相乘:
from decimal import Decimal, getcontext
getcontext().prec = 20
import cProfile
a = [Decimal(x) for x in range(1,10000)]
b = [Decimal(x) for x in range(1,10000)]
def multiply(a,b):
[x*y for x,y in zip(a,b)]
cProfile.run('multiply(a,b)')
这需要大约0.224
秒。但是,如果我尝试为numpy向量做同样的事情:
import numpy as np
a = np.arange(1,10000)
b = np.arange(1,10000)
def multiply(a,b):
a*b
cProfile.run('multiply(a,b)')
需要0.000
秒。有没有其他方法来制作十进制矢量并在python中将它们相乘?