【发布时间】:2011-10-16 03:52:29
【问题描述】:
我有一个数组 A,我有一个切片索引 (s,t) 的列表,我们称这个列表为 L。
我想找到 A[s1:t1], A[s2:t2] 的 85 个百分位数 ...
有没有办法在 numpy 中对这些操作进行矢量化?
ans = []
for (s,t) in L:
ans.append( numpy.percentile( A[s:t], 85) );
看起来很麻烦。
非常感谢!
PS:假设 s1
【问题讨论】:
-
A的形状是什么?如果它是 (n,),那么t_k- s_k对于所有k是否都是常数? IE。你的滑动窗口有一个恒定的宽度吗?谢谢 -
@eat:不,我的滑动窗口没有恒定的宽度,不幸的是采样率不均匀。 A 的形状是一维的。
-
@eat:我也想知道是否有用于等宽滑动窗口的矢量化算法
-
是的,如果你有恒定的宽度,有几种方法可以简化代码。而且,如果您有真正不均匀的采样数据,您总是可以重新采样它以使其均匀(通过插值,尽管您仍然需要指定正确的插值方法)。想详细说明您的具体情况吗?谢谢
-
@eat:很抱歉我真的无法插入数据。 “样本”不是一个好词。我正在处理市场数据。你知道,如果交易发生在这里,我真的不能假设它发生在其他地方。 =)
标签: python statistics numpy scipy vectorization