标签: resampling

如何引导尊重主题内信息?

这是我第一次发帖到这个论坛,我想从一开始就说我不是一个熟练的程序员.如果问题或代码不清楚,请告诉我!

我试图通过引导来获得交互的95%置信区间(CI)(这是我的测试统计).我正在使用"boot"包.我的问题是,对于每个重新采样,我希望在受试者内进行随机化,以便来自不同受试者的观察结果不会混合.这是生成类似于我的数据帧的代码.如您所见,我有两个主体内因素("Num"和"Gram",我对两者之间的相互作用感兴趣):

Subject = rep(c("S1","S2","S3","S4"),4)
Num     = rep(c("singular","plural"),8) 
Gram    = rep(c("gram","gram","ungram","ungram"),4)
RT      = c(657,775,678,895,887,235,645,916,930,768,890,1016,590,978,450,920)
data    = data.frame(Subject,Num,Gram,RT) 
Run Code Online (Sandbox Code Playgroud)

这是我用来获得经验交互值的代码:

summary(lm(RT ~ Num*Gram, data=data))
Run Code Online (Sandbox Code Playgroud)

如您所见,我的两个因素之间的相互作用是-348.我想得到这个统计信息的bootstrap置信区间,我可以使用"boot"包生成:

# You need the following packages
install.packages("car") 
install.packages("MASS")
install.packages("boot")
library("car")
library("MASS")
library("boot")

#Function to create the statistic to be boostrapped
boot.huber <- function(data, indices) {
data <- data[indices, ] #select obs. in bootstrap sample
mod <- lm(RT ~ Num*Gram, data=data)
coefficients(mod)       #return coefficient vector
}

#Generate bootstrap estimate
data.boot <- boot(data, boot.huber, 1999)

#Get confidence interval
boot.ci(data.boot, …
Run Code Online (Sandbox Code Playgroud)

r resampling statistics-bootstrap

15
推荐指数
1
解决办法
1126
查看次数

使用另一个时间序列的索引重新采样时间序列

我有2个数据帧具有相同的列但不同的日期时间索引.我想重新对其中一个进行重新采样,以使用另一个的索引,并在另一个没有数据的索引中的任何日期转发数据.

import pandas as pd
import numpy as np
from datetime import datetime as dt

a_values = np.random.randn(4, 4)
a_index = [dt(2012, 3, 16), dt(2012, 3, 19), dt(2012, 3, 20), dt(2012, 3, 21)]
a = pd.DataFrame(data=a_values, index=a_index)

b_values = np.trunc(np.random.randn(3, 4) * 1000)
b_index = [dt(2012, 3, 16), dt(2012, 3, 19), dt(2012, 3, 21)]
b = pd.DataFrame(data=b_values, index=b_index)

c_insert = a.ix['2012-03-20']
c = b.append(c_insert).sort()
c.ix['2012-03-20'] = c.ix['2012-03-19']
Run Code Online (Sandbox Code Playgroud)

'a'表示其索引我想用作重采样参考的数据帧.'b'表示我想重新采样和转发填充数据的数据帧.'c'表示我想要的结果.

请注意,'b'缺少'a'中存在的'2012-03-20'索引.'c'用索引'2012-03-19'的'b'列中的数据填充索引'2012-03-20'的列

pandas是否具有执行此操作的功能.

提前致谢.

PIR

python indexing time-series resampling pandas

12
推荐指数
1
解决办法
3758
查看次数

重新采样一个numpy数组

很容易重新采样数组

 a = numpy.array([1,2,3,4,5,6,7,8,9,10])
Run Code Online (Sandbox Code Playgroud)

具有整数重采样因子.例如,使用因子2:

b = a[::2]    # [1 3 5 7 9]
Run Code Online (Sandbox Code Playgroud)

但是使用非整数重采样因子,它不会那么容易:

c = a[::1.5]    # [1 2 3 4 5 6 7 8 9 10]  => not what is needed...
Run Code Online (Sandbox Code Playgroud)

它应该是(使用线性插值):

[1 2.5 4 5.5 7 8.5 10]
Run Code Online (Sandbox Code Playgroud)

或(通过采取阵列中最近的邻居)

[1 3 4 6 7 9 10]
Run Code Online (Sandbox Code Playgroud)

如何使用非整数重采样因子重新采样numpy数组?

应用示例:音频信号重采样/重新排样

python arrays audio numpy resampling

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

这个算法的名称是什么,它与其他图像重采样算法相比如何?

这个算法已经在我脑海里存在了很长时间,但我无法在任何地方找到它.虽然我不能成为唯一一个想到它的人,但这很简单.以下是它的工作原理:

你从一个图像开始.说,7x7px:

算法1

你需要重新取样,比如5x5px:

算法2

所以你要做的就是采用每个新方块的平均颜色:

算法3

这不是最近邻居,因为它只采用一个像素的颜色,而不是恰好覆盖源像素的分数像素.它也不是双线性,双三次,lanczos或任何其他插值.

那么 - 它是什么?在我看来,这应该是"数学上完美的"重采样算法,虽然因为我没有"数学上完美"的定义,我无法证明或证明这一点.

最后但并非最不重要的是,"数学上完美"并不总是"最好看",所以我想知道它在"质量"方面与其他主流图像重采样算法(bicubic,lanczos)相比如何?当然,这是一个主观的术语,所以如果这个算法和其他算法之间存在显着差异,我很感兴趣,这是大多数人都会同意的.

PS我已经可以告诉它一些事情 - 它不会像素艺术那样"最好看",如这里所示; 有特殊的算法(2xSAI等); 并且它也不是最好的放大图片 - 插值会赢得那里.但是对于缩小的图片...?

更新1:嗯,刚刚发现超级采样.这似乎是它的变体,具有网格类型的样本排列,其中样本的数量针对源图像和目标图像的分辨率进行了优化.

algorithm image-processing resampling

11
推荐指数
1
解决办法
1411
查看次数

nvidia驱动程序在opencl重采样中对于GTX480 GPU的差异为275.50和280.19

对于Nvidia GTX480 GPU,使用驱动程序版本275.50和280.19重新采样图像,灰度值几乎没有变化.也许这是一个插值问题.除了OpenCL 1.1版的实现之外,我无法确定新版本中的更改.仅使用OpenCL 1.0,灰度值的变化相同.

在下面的代码中,驱动程序版本275.50和280.19之间给出了不同的结果:

success oclInitImgData(struct _Image2d *image)
{
cl_image_format volume_format;
volume_format.image_channel_order       = CL_R;
volume_format.image_channel_data_type   = CL_UNORM_INT16;

size = len[0] * sizeof(unsigned short);
img_h = clCreateImage2D(Ocl._GPUContext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,
    &volume_format, len[0], len[1], size, data, &error);

resampledImg_h = clCreateBuffer(Ocl._GPUContext, CL_MEM_READ_WRITE, size, NULL, &error);
oclResampleImg(Ocl._GPUCommandQueue[posSet], Ocl._pGPUKernels[posSet][K_IMG_RESAMPLE], img_h, resampledImg_h , Size, PixelSize, mm_per_p, vm_h);
}

__kernel void resampleImage( __read_only image2d_t IN image, __global uint OUT *resampledImage)
    {
//get resampled position
int2 posResampledImg = (int2)(get_global_id(0), get_global_id(1));

//get dimension of the image
int2 …
Run Code Online (Sandbox Code Playgroud)

gpu driver opencl resampling

11
推荐指数
1
解决办法
303
查看次数

熊猫数据帧重新取样基于列标准

如果另一列中的单元格符合我的条件,我想重新采样数据帧

df = pd.DataFrame({
        'timestamp': [
            '2013-03-01 08:01:00', '2013-03-01 08:02:00',
            '2013-03-01 08:03:00', '2013-03-01 08:04:00',
            '2013-03-01 08:05:00', '2013-03-01 08:06:00'
        ],
        'Kind': [
            'A', 'B', 'A', 'B', 'A', 'B'
        ],
        'Values': [1, 1.5, 2, 3, 5, 3]
    })
Run Code Online (Sandbox Code Playgroud)

对于每个时间戳,我可能有2-10种,我想要正确地重新采样而不产生NaN.目前,我使用下面的代码对整个数据框进行重新采样并得到NaNs.我认为这是因为我有一些特定时间戳的条目.

df.set_index('timestamp').resample('5Min').mean()
Run Code Online (Sandbox Code Playgroud)

一种方法是为每种类型创建不同的数据帧,重新采样每个数据帧,并加入结果数据帧.我想知道是否有任何简单的方法.

python resampling dataframe pandas

11
推荐指数
2
解决办法
2617
查看次数

使用 Javascript / Node.js 重新采样时间序列或数据帧

我需要在node.js. 所以我想知道是否有一个工具javascript可以像pandas在 Python 中一样工作?

假设我有与此示例类似的数据:

[{
    "time": "28-09-2018 21:29:04",
    "value1": 1280,
    "value2": 800
},
{   
    "time": "28-09-2018 21:38:56",
    "value1": 600,
    "value2": 700
},
{
    "time": "29-09-2018 10:40:00",
    "value1": 1100,
    "value2": 300
},
{
    "time": "29-09-2018 23:50:48",
    "value1": 140,
    "value2": 300
}]
Run Code Online (Sandbox Code Playgroud)

Python我将这些数据放入pandas数据帧中,然后将其重新采样到具有不同采样率的新数据帧中。在此示例中为每日数据:

import pandas
df = pandas.DataFrame(...)
df_days = df.resample('1440min').apply({'value1':'sum', 'value2':'sum'}).fillna(0)
Run Code Online (Sandbox Code Playgroud)

所以我的新数据看起来像这样:

[{
    "time": "28-09-2018 00:00:00",
    "value1": 1880,
    "value2": 1500
},
{   
    "time": "29-09-2018 00:00:00",
    "value1": 1240,
    "value2": 600
}] …
Run Code Online (Sandbox Code Playgroud)

javascript python resampling node.js pandas

11
推荐指数
1
解决办法
1405
查看次数

用于音频重采样的库

在嵌入式(Windows CE)C++项目中,我必须将任意采样率重新采样(或向上)到44100 Hz.

是否有用于音频重采样的免费便携式C/C++库?

c c++ embedded audio resampling

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

Scipy插值如何将3x3矩阵调整大小/重新采样到5x5?

编辑:保罗在下面解决了这个问题.谢谢!

我正在尝试将3x3矩阵重新采样(升级)为5x5,使用interpolate.interp2d或interpolate.RectBivariateSpline(或其他任何工作)填充中间点.

如果有一个简单的现有函数来执行此操作,我想使用它,但我还没有找到它.例如,一个函数可以像:

# upscale 2x2 to 4x4
matrixSmall = ([[-1,8],[3,5]])
matrixBig = matrixSmall.resample(4,4,cubic)
Run Code Online (Sandbox Code Playgroud)

那么,如果我从一个3x3矩阵/数组开始:

0,-2,0
-2,11,-2
0,-2,0
Run Code Online (Sandbox Code Playgroud)

我想计算一个新的5x5矩阵("I"表示内插值):

0, I[1,0], -2, I[3,0], 0
I[0,1], I[1,1], I[2,1], I[3,1], I[4,1]
-2, I[1,2], 11, I[3,2], -2
I[0,3], I[1,3], I[2,3], I[3,3], I[4,3]
0, I[1,4], -2, I[3,4], 0
Run Code Online (Sandbox Code Playgroud)

我一直在搜索和阅读并尝试各种不同的测试代码,但我还没有弄清楚我正在尝试做什么的正确语法.我也不确定我是否需要在某些行中使用meshgrid,mgrid或linspace.

编辑:修复和工作感谢Paul

import numpy, scipy
from scipy import interpolate

kernelIn = numpy.array([[0,-2,0],
             [-2,11,-2],
             [0,-2,0]])

inKSize = len(kernelIn)
outKSize = 5

kernelOut = numpy.zeros((outKSize,outKSize),numpy.uint8)

x = numpy.array([0,1,2])
y = numpy.array([0,1,2])

z = kernelIn

xx = …
Run Code Online (Sandbox Code Playgroud)

python interpolation numpy scipy resampling

10
推荐指数
2
解决办法
9825
查看次数

仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但有一个“Int64Index”实例

我正在尝试重新采样此 Dataframe 的Timestamp列:

  Transit.head():

      Timestamp                            Plate           Gate
  0 2013-11-01 21:02:17 4f5716dcd615f21f658229a8570483a8    65
  1 2013-11-01 16:12:39 0abba297ac142f63c604b3989d0ce980    64
  2 2013-11-01 11:06:10 faafae756ce1df66f34f80479d69411d    57
Run Code Online (Sandbox Code Playgroud)

这就是我所做的:

  Transit.drop_duplicates(inplace=True)
  Transit.Timestamp = pd.to_datetime(Transit.Timestamp)
  Transit['Timestamp'].resample('1H').pad()
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

  Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'Int64Index'
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激。

datetime resampling dataframe python-3.x pandas

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