原文链接: numpy 向量叉积计算时的性能问题
上一篇: c++ 输入输出流重定向
下一篇: 强化学习 qlearning CartPole-v0 单网络 学习
在使用np的cross计算叉积时发现该方法貌似有点慢,于是简单做个试验测试下
分别使用np的函数和计算公式分别计算,发现在大数据量下,每次计算一组数据的性能差别较大,但是如果一次计算,速度很快,也就是说在实际应用中尽量减少多次少量的计算,而是转化为单次大量的计算
import numpy as np
import time
num = 100000
a = np.random.randint(-100, 100, (num, 2))
b = np.random.randint(-100, 100, (num, 2))
c1 = []
st = time.time()
for i, j in zip(a, b):
c1.append(np.cross(i, j))
print(time.time() - st)
c2 = []
st = time.time()
for i, j in zip(a, b):
c2.append(i[0] * j[1] - i[1] * j[0])
print(time.time() - st)
print(np.all(c1 == c2))
st = time.time()
c3 = np.cross(a, b)
print(time.time() - st)
print(np.all(c3 == c1))
结果
2.922182559967041
0.24434638023376465
True
0.0
True