繁体   English   中英

在python中为大型numpy数组计算速度和加速度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM