gpt4 book ai didi

python - 沿轴平滑数组

转载 作者:行者123 更新时间:2023-12-01 05:17:19 25 4
gpt4 key购买 nike

我研究了信号的平滑并找到了 Cookbook 页面 http://wiki.scipy.org/Cookbook/SignalSmooth这对于只有一维的数组来说效果很好。现在我确实需要一个函数来执行相同的操作,但是在沿 N 轴的 (TxNx3) 数组上。

上下文是,我有一个由 N 个粒子和 T 帧组成的轨迹,每个粒子都有 x、y、z,现在我想对它们的运动及时实现某种低通滤波器,以减少在电影。

为了说明问题:

import numpy as np
from MY_Cookbook_copy import smooth
T = np.random.random((30,30,3)) # this is the trajectory
imshow( T[:,:,0], interpolation='nearest' )

original trajectory

# this works but is too slow and only for the x data
for i in range( T.shape[1] ):
T[:,i,0] = smooth( T[:,i,0], 5 )
imshow( T[:,:,1], interpolation='nearest' )

这给出了 smoothed trajectory

所以我的问题的维度大约是 5000 个时间帧内的 1000 个粒子

最佳答案

您可以尝试多维高斯滤波器 - http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.filters.gaussian_filter.html

应用高斯滤波器可以平滑信号,您可以通过将 sigma 设置为元组来将其应用于多个维度,这样您就可以在每个轴上获得不同的平滑量。我想您只想随着时间的推移平滑 x、y、z 值,因此您可以尝试使用 (2, 0, 0) 的西格玛,尽管我并不完全清楚您的数据设置。西格玛控制高斯滤波器的宽度,因此如果您想进行局部平滑,请使用较小的西格玛。您可能需要进行一些试验才能找到所需的平滑级别。

关于python - 沿轴平滑数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22964638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com