我正在用NumPy做一些计算,通过一个大盒子和一个小盒子之间的Aperture找到Y截距。我在大箱子里有超过100.000个粒子,在小箱子里有大约1000个。这需要花费很多时间。所有self.YD,self.XD都是我正在成倍增长的非常大的数组。计算 - numpy python bug
PS:ind是需要相乘的值的索引。在我的代码之前,我有一个非零的条件。
任何想法如何以更简单的方式做这个计算?
YD_zero = self.oldYD[ind] - ((self.oldYD[ind]-self.YD[ind]) * self.oldXD[ind])/(self.oldXD[ind]-self.XD[ind])
谢谢!
UPDATE
会用乘法,除法,减法和numpy的所有的东西。让它更快? 或者如果我可以分割计算。例如。
首先做到这一点:
YD_zero = self.oldYD[ind] - ((self.oldYD[ind]-self.YD[ind])*self.oldXD[ind])
再下一行是:
YD_zero /= (self.oldXD[ind]-self.XD[ind])
任何建议?
更新2
我一直在试图弄清楚这一点,在有一段时间了,但没有太大的进展。我担心的是分母:
self.oldXL[ind]-self.XL[ind] == 0
我得到了一些奇怪的结果。
另一件事是非零功能。我一直在测试它一段时间。有人可以告诉我它几乎和在Matlab中找到的一样吗
是精密显著的损失,如果你尝试修剪点套? – Wok
我需要有非常准确的数据。 –
更简单,你的意思是在更少的CPU周期? –