【发布时间】:2018-03-15 01:12:44
【问题描述】:
给定大小为(n, 3) 和n 的ndarray 大约为1000,如何快速将每行的所有元素相乘?下面的(不优雅的)第二种解决方案运行时间约为 0.3 毫秒,是否可以改进?
# dummy data
n = 999
a = np.random.uniform(low=0, high=10, size=n).reshape(n/3,3)
# two solutions
def prod1(array):
return [np.prod(row) for row in array]
def prod2(array):
return [row[0]*row[1]*row[2] for row in array]
# benchmark
start = time.time()
prod1(a)
print time.time() - start
# 0.0015
start = time.time()
prod2(a)
print time.time() - start
# 0.0003
【问题讨论】:
标签: python arrays performance numpy multidimensional-array