标签: resampling

熊猫每排第n行

Dataframe.resample()仅适用于时间序列数据.我找不到从非时间序列数据中获取每一行的方法.什么是最好的方法?

python resampling pandas

85
推荐指数
4
解决办法
6万
查看次数

实时数据捕获的百分位数

我正在寻找一种算法来确定实时数据捕获的百分位数.

例如,考虑开发服务器应用程序.

服务器的响应时间可能如下:17 ms 33 ms 52 ms 60 ms 55 ms等.

报告第90百分位响应时间,第80百分位响应时间等是有用的.

朴素算法是将每个响应时间插入列表中.请求统计信息时,对列表进行排序并将值放在适当的位置.

内存使用量与请求数量呈线性关系.

是否有一种算法可以在内存使用量有限的情况下产生"近似"百分位数统计量?例如,假设我想以一种处理数百万个请求的方式来解决这个问题,但只想使用一千字节的内存进行百分位跟踪(丢弃旧请求的跟踪不是一个选项,因为百分位数应该是满足所有要求).

还要求不存在分布的先验知识.例如,我不希望提前指定任何范围的存储桶.

algorithm response-time resampling percentile

40
推荐指数
6
解决办法
1万
查看次数

大熊猫OHLC聚合OHLC数据

据我所知,OHLC使用一列数据对Pandas中的时间序列数据进行重新采样将完美地工作,例如在以下数据帧上:

>>df
ctime       openbid
1443654000  1.11700
1443654060  1.11700
...

df['ctime']  = pd.to_datetime(df['ctime'], unit='s')
df           = df.set_index('ctime')
df.resample('1H',  how='ohlc', axis=0, fill_method='bfill')


>>>
                     open     high     low       close
ctime                                                   
2015-09-30 23:00:00  1.11700  1.11700  1.11687   1.11697
2015-09-30 24:00:00  1.11700  1.11712  1.11697   1.11697
...
Run Code Online (Sandbox Code Playgroud)

但是如果数据已经是OHLC格式,我该怎么办?根据我的收集,API的OHLC方法为每列计算OHLC切片,因此如果我的数据采用以下格式:

             ctime  openbid  highbid   lowbid  closebid
0       1443654000  1.11700  1.11700  1.11687   1.11697
1       1443654060  1.11700  1.11712  1.11697   1.11697
2       1443654120  1.11701  1.11708  1.11699   1.11708
Run Code Online (Sandbox Code Playgroud)

当我尝试重新采样时,我会为每个列获得一个OHLC,如下所示:

                     openbid                             highbid           \
                        open     high      low    close     open     high   
ctime                                                                       
2015-09-30 23:00:00  1.11700  1.11700  1.11700  1.11700 …
Run Code Online (Sandbox Code Playgroud)

python resampling dataframe python-2.7 pandas

28
推荐指数
3
解决办法
2万
查看次数

下采样1D numpy阵列

我有一个1-n numpy数组,我想下采样.如果下采样栅格不完全适合数据,则可以使用以下任何方法:

  • 重叠下采样间隔
  • 将最后剩余的数值转换为单独的下采样值
  • 插值以适合栅格

基本上如果我有

1 2 6 2 1
Run Code Online (Sandbox Code Playgroud)

我的下采样率为3,所有以下都可以:

3 3

3 1.5
Run Code Online (Sandbox Code Playgroud)

或者插值会给我的任何东西.

我只是在寻找最快/最简单的方法.

我找到了scipy.signal.decimate,但这听起来像是抽取了值(根据需要取出它们,只在X中留下一个). scipy.signal.resample似乎有正确的名字,但我不明白他们在描述中的整个傅立叶的位置.我的信号不是特别周期性的.

你能帮我一把吗?这似乎是一项非常简单的任务,但所有这些功能都非常错综复杂......

python signal-processing numpy scipy resampling

21
推荐指数
1
解决办法
2万
查看次数

模块 PIL 没有属性“重新采样”

我之前运行过相同的代码(带有我需要的包)并且它有效,不确定现在发生了什么。这显示了错误, AttributeError: module 'PIL.Image' has no attribute 'Resampling'。可能这是一个小问题,但我无法弄清楚,我正在数据块中工作。

python resampling python-imaging-library

21
推荐指数
5
解决办法
5万
查看次数

在Python中将不规则间隔的数据重新采样到常规网格

我需要将2D数据重新采样到常规网格.

这就是我的代码:

import matplotlib.mlab as ml
import numpy as np

y = np.zeros((512,115))
x = np.zeros((512,115))

# Just random data for this test:
data = np.random.randn(512,115)

# filling the grid coordinates:    
for i in range(512):
    y[i,:]=np.arange(380,380+4*115,4)

for i in range(115):
    x[:,i] = np.linspace(-8,8,512)
    y[:,i] -=  np.linspace(-0.1,0.2,512)

# Defining the regular grid
y_i = np.arange(380,380+4*115,4)
x_i = np.linspace(-8,8,512)

resampled_data = ml.griddata(x,y,data,x_i,y_i)
Run Code Online (Sandbox Code Playgroud)

(512,115)是2D数据的形状,我已经安装了mpl_toolkits.natgrid.

我的问题是我得到了一个蒙面数组,其中大部分条目都是nan,而不是一个主要由常规条目组成的数组,而边界只有nan.

有人能指出我做错了吗?

谢谢!

python matplotlib resampling

19
推荐指数
1
解决办法
2万
查看次数

对数间隔的整数

假设我有一个10,000磅的矢量,我想采取一个只有100个对数间隔点的切片.我想要一个函数给我索引的整数值.这是一个简单的解决方案,只需使用+ logspace,然后摆脱重复.

def genLogSpace( array_size, num ):
    lspace = around(logspace(0,log10(array_size),num)).astype(uint64)
    return array(sorted(set(lspace.tolist())))-1

ls=genLogspace(1e4,100)

print ls.size
>>84
print ls
array([   0,    1,    2,    3,    4,    5,    6,    7,    8,    9,   10,
         11,   13,   14,   15,   17,   19,   21,   23,   25,   27,   30,
         33,   37,   40,   44,   49,   54,   59,   65,   71,   78,   86,
         94,  104,  114,  125,  137,  151,  166,  182,  200,  220,  241,
        265,  291,  319,  350,  384,  422,  463,  508,  558,  613,  672,
        738,  810,  889,  976, 1071, 1176, …
Run Code Online (Sandbox Code Playgroud)

python numpy resampling

18
推荐指数
1
解决办法
1万
查看次数

哪里可以找到关于双三次插值和Lanczos重采样的好读物?

我想在C++中实现上面提到的两个图像重采样算法(bicubic和Lanczos).我知道有很多现有的实现,但我仍然想做自己的.我想部分原因是因为我想了解它们是如何工作的,部分是因为我想给它们一些在主流实现中找不到的功能(比如可配置的多CPU支持和进度报告).

我试过读维基百科,但这些东西对我来说太干了.也许对这些算法有一些更好的解释?我在SO或Google上找不到任何东西.

补充:似乎没有人可以给我一个关于这些主题的良好链接.任何人都可以至少尝试在这里解释一下吗?

algorithm image-processing resampling

17
推荐指数
3
解决办法
2万
查看次数

如何按月平均值划分数据帧的单个值?

我有以下15分钟的数据作为dataframe3年.前两列是索引.

2014-01-01 00:15:00  1269.6      
2014-01-01 00:30:00  1161.6      
2014-01-01 00:45:00  1466.4      
2014-01-01 01:00:00  1365.6      
2014-01-01 01:15:00  1362.6      
2014-01-01 01:30:00  1064.0      
2014-01-01 01:45:00  1171.2      
2014-01-01 02:00:00  1171.0      
2014-01-01 02:15:00  1330.4      
2014-01-01 02:30:00  1309.6      
2014-01-01 02:45:00  1308.4      
2014-01-01 03:00:00  1494.0    
Run Code Online (Sandbox Code Playgroud)

我曾经习惯于resample获得月平均值的第二个系列.

data_Monthly = data.resample('1M', how='mean')
Run Code Online (Sandbox Code Playgroud)

如何将最后一列中的值除以月平均值,结果仍然是15分钟粒度的时间序列?

average time-series resampling pandas

17
推荐指数
2
解决办法
1万
查看次数

你如何对重新采样的音频数据进行双三次(或其他非线性)插值?

我正在编写一些以不同速度播放WAV文件的代码,因此波浪要么慢,要么低音,要么更快,音高更高.我目前正在使用简单的线性插值,如下所示:

            int newlength = (int)Math.Round(rawdata.Length * lengthMultiplier);
            float[] output = new float[newlength];

            for (int i = 0; i < newlength; i++)
            {
                float realPos = i / lengthMultiplier;
                int iLow = (int)realPos;
                int iHigh = iLow + 1;
                float remainder = realPos - (float)iLow;

                float lowval = 0;
                float highval = 0;
                if ((iLow >= 0) && (iLow < rawdata.Length))
                {
                    lowval = rawdata[iLow];
                }
                if ((iHigh >= 0) && (iHigh < rawdata.Length))
                {
                    highval = rawdata[iHigh];
                }

                output[i] = …
Run Code Online (Sandbox Code Playgroud)

audio interpolation signal-processing resampling bicubic

16
推荐指数
2
解决办法
1万
查看次数