gpt4 book ai didi

python - 有效地将每一行的元素相乘

转载 作者:行者123 更新时间:2023-11-28 20:14:27 33 4
gpt4 key购买 nike

给定一个大小为 (n, 3)n 约为 1000 的 ndarray,如何快速地将每一行的所有元素相乘?下面的(不优雅的)第二个解决方案运行时间约为 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

最佳答案

np.prod 接受轴参数:

np.prod(a, axis=1)

使用 axis=1,计算每一行的列乘积。

完整性检查

assert np.array_equal(np.prod(a, axis=1), prod1(a))

性能

17.6 µs ± 146 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

(1000 倍加速)

关于python - 有效地将每一行的元素相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290059/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com