我正在用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週期? –