[英]Python - Difficulty Calculating Partition Function using Large NumPy arrays
[英]Calculating velocities and acceleration in python for large numpy arrays
我正在研究粒子跟踪代码,其中数组的存储方式如下:
x_pos y_pos path# slice#
1 10 1 1
2 11 1 2
3 12 1 3
5 2 2 1
7 4 2 2
9 6 2 3
11 8 2 4
...
2 6 N 100
其中每个路径编号对应于单个粒子的轨迹,切片编号是包含粒子的图像编号。
我想计算每个路径的速度和加速度(路径的每个部分,然后是整个路径)。 当前,我正在使用(假设我的时间步长是1):
vel_x = np.diff(data['x_Pos'])
acc = np.diff(vel_x)
这很好用,但是然后我必须遍历数组并取出不正确的值(即,路径号更改的地方)。 因为我的数组长度接近一百万,有人知道这样做的快速方法吗? 或者,一种更好的方法来计算速度和加速度?
任何建议都将不胜感激,因为我是python的新手!
尝试np.where
:
vel_x = np.where(np.diff(data['path#'])==0, np.diff(data['x_Pos']), np.inf)
结果(“ inf”仅表示数据无效):
array([ 1., 1., inf, 2., 2., 2.])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.