标签: sampling

readframes在python中返回2个字节

readframes()在python中使用时,在线文档表示返回采样频率,它看起来返回2个字节.我想每帧有4个字节:

left = 2 bytes
right = 2 bytes
Run Code Online (Sandbox Code Playgroud)

我是否必须检查它是单声道还是立体声,如果它是立体声,一次读2帧,如果是单声道,一次读1帧?

python frequency wav sampling

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

如何从Haskell中的复杂或复合分布中进行采样?

我正在尝试为Haskell中的假想行星生成随机质量.我想通过采样双模态分布(理想情况下是两个正态分布的叠加:一个对应于小行星,一个对应于气体巨行)来产生这些质量.我查看了统计软件包,它提供了quantile函数,可以将统一分布Double转换Double为多个分布.但似乎没有任何支持撰写发行版.

这个特殊情况可以通过选择一个分布或另一个分类来进行预测,但是我想用一个分发来做,特别是因为我可能需要稍后调整整体分布.最终,我可能会用天空测量中的真实数据替换正态分布.

我正在考虑自己实施拒绝抽样,它可以相当简单地处理任意分布,但它似乎效率很低,如果解决方案已经作为库存在,那么实现它肯定不是一个好主意.

是否有一个Haskell库支持从组合或显式指定的分发中进行采样?或者现有的Haskell实现拒绝采样?或者,是否存在两个正态分布之和的CDF逆的显式公式?

statistics haskell normal-distribution procedural-generation sampling

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

从R中的主题ID重新采样

假设我们有以下数据

set.seed(123)
dat <- data.frame(var1=c(10,35,13,19,15,20,19), id=c(1,1,2,2,2,3,4))
(sampledIDs <- sample(min(dat$id):max(dat$id), size=3, replace=TRUE))
> [1] 2 4 2
Run Code Online (Sandbox Code Playgroud)

samplingID是从中采样(替换)的id的向量dat$id.我需要导致的代码(并且也适用于包含更多变量的大型数据集):

  var1 id
   13  2
   19  2
   15  2
   19  4
   13  2
   19  2
   15  2
Run Code Online (Sandbox Code Playgroud)

代码dat[which(dat$id%in%sampledIDs),]不能给我我想要的东西,因为这段代码的结果是

  var1 id
    13  2
    19  2
    15  2
    19  4
Run Code Online (Sandbox Code Playgroud)

主题dat$id==2在此数据中只出现一次(我理解为什么这是结果,但不知道如何得到我想要的).有人可以帮忙吗?


编辑:谢谢你的答案,这里是所有答案的运行时间(对于那些感兴趣的人):

                                                                 test replications elapsed relative user.self
3   dat[unlist(lapply(sampledIDs, function(x) which(x == dat$id))), ]         1000    0.67    1.000      0.64
1 dat[which(sapply(sampledIDs, "==", dat$id), arr.ind = TRUE)[, 1], ]         1000    0.67 …
Run Code Online (Sandbox Code Playgroud)

r matrix sampling resampling

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

因子分层抽样

我有一个1000行的数据集,具有以下结构:

     device geslacht leeftijd type1 type2
1       mob        0       53     C     3
2       tab        1       64     G     7
3        pc        1       50     G     7
4       tab        0       75     C     3
5       mob        1       54     G     7
6        pc        1       58     H     8
7        pc        1       57     A     1
8        pc        0       68     E     5
9        pc        0       66     G     7
10      mob        0       45     C     3
11      tab        1       77     E     5
12      mob        1       16     A     1
Run Code Online (Sandbox Code Playgroud)

我想制作80行的样本,由10行(type1 = …

r sampling dataframe

6
推荐指数
3
解决办法
1173
查看次数

从数据集中随机抽样,同时保留原始概率分布

我从测量中收集了一组> 2000个数字.我想从这个数据集中抽样,在每次测试中约10次,同时保持整体的概率分布,并在每次测试中(尽可能地扩展).例如,在每个测试中,我想要一些小值,一些中产阶级值,一些大值,其中均值和方差大致接近原始分布.结合所有测试,我还想要所有样本的总平均值和方差,大约接近原始分布.

由于我的数据集是长尾概率分布,因此每个分位数的数据量不同:

概率密度

图1.约2k数据元素的密度图.

我正在使用Java,现在我正在使用统一分布,并使用数据集中的随机int,并返回该位置的数据元素:

public int getRandomData() {
    int data[] ={1231,414,222,4211,,41,203,123,432,...};
    length=data.length;
    Random r=new Random();
    int randomInt = r.nextInt(length);
    return data[randomInt];
}
Run Code Online (Sandbox Code Playgroud)

我不知道它是否按我的意愿工作,因为我按照测量的顺序使用数据,这有很大的串行相关性.

java sampling probability-density

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

在给定一些条件数据的情况下,是否可以从R中的条件密度进行采样?

在R中,使用np包,我创建了条件密度的带宽.我想要做的是,给定一些新的条件向量,从得到的分布中得到样本.

当前代码:

library('np')
# Generate some test data.
somedata = data.frame(replicate(10,runif(100, 0, 1)))
# Conditional variables.
X <- data.frame(somedata[, c('X1', 'X2', 'X3')])
# Dependent variables.
Y <- data.frame(somedata[, c('X4', 'X5', 'X6')])
# Warning, this can be slow (but shouldn't be too bad).
bwsome = npcdensbw(xdat=X, ydat=Y)
# TODO: Given some vector t of conditional data, how can I sample from the resulting distribution?
Run Code Online (Sandbox Code Playgroud)

我是R的新手,所以当我阅读包文档时,我无法弄清楚我的视觉是否有意义或可能.如果有必要,我会很乐意使用不同的包.

r sampling kernel-density

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

AudioRecord对象未在项目中初始化

当我尝试使用以下代码通过我的Nexus 5录制音频时

record = new AudioRecord(MediaRecorder.AudioSource.MIC, sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_8BIT, BYTE_OF_SAMPLE * bufferSampleSize);
record.startRecording();
Run Code Online (Sandbox Code Playgroud)

然后我在logcat中得到以下异常:

E/AudioRecord: AudioFlinger could not create record track, status: -1
E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1.
E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
E/AndroidRuntime: FATAL EXCEPTION: Thread-855
E/AndroidRuntime: Process: com.*.*, PID: 14206
E/AndroidRuntime: java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord.
E/AndroidRuntime:     at android.media.AudioRecord.startRecording(AudioRecord.java:885)
E/AndroidRuntime:     at com.*.*.MainActivity$Looper.run(MainActivity.java:265)
E/Surface: getSlotFromBufferLocked: unknown buffer: 0x9e476d00
Run Code Online (Sandbox Code Playgroud)

我在清单文件中添加了以下行.

<uses-permission android:name="android.permission.RECORD_AUDIO" />
Run Code Online (Sandbox Code Playgroud)

我已经测试了AudioRecord对象未初始化.这些解决方案都不起作用.

但它在另一个项目中工作.有什么遗漏?

java android sampling

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

R:通过分组变量对唯一ID的随机样本比例进行分层

通过以下示例数据帧,我想从因子"群组"的每个级别绘制ID的"ID"的分层随机样本(例如,40%):

data<-structure(list(Cohort = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), ID = structure(1:20, .Label = c("a1 ", 
"a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "b10", "b11", 
"b12", "b13", "b14", "b15", "b16", "b17", "b18", "b19", "b20"
), class = "factor")), .Names = c("Cohort", "ID"), class = "data.frame", row.names = c(NA, 
-20L))
Run Code Online (Sandbox Code Playgroud)

我只知道如何使用以下内容绘制随机数:

library(dplyr)
data %>% 
group_by(Cohort) %>%
sample_n(size = 10)
Run Code Online (Sandbox Code Playgroud)

但我的实际数据是纵向的,所以我在每个队列中有多个相同ID的案例和几个不同大小的队列,因此需要选择一定比例的唯一ID.任何援助将不胜感激.

random r sampling dplyr

6
推荐指数
2
解决办法
1768
查看次数

从MultiIndex DataFrame中采样

我与在以下面板数据的工作MultiIndex大熊猫DataFramedf_data:

              y         x
n   time                    
0   0     0.423607 -0.307983
    1     0.565563 -0.333430
    2     0.735979 -0.453137
    3     0.962857  1.671106
1   0     0.772304  1.221366
    1     0.455327 -1.024852
    2     0.864768  0.609867
    3     0.334429 -2.567936
2   0     0.435553 -0.259228
    1     0.221501  0.484677
    2     0.773628  0.650288
    3     0.293902  0.566452
Run Code Online (Sandbox Code Playgroud)

n索引一个人(其中有500个),t索引时间.这是一个平衡的面板.我想创建一个随机抽样的nn=100个人样本.此外,如果个人将其作为随机样本,则应将该个体的所有4次观察(t = 0,1,2,3)分配给样本.

以下几行几乎是我想要的:

df_sample = df_data.loc[np.random.randint(3, size=100).tolist()]
Run Code Online (Sandbox Code Playgroud)

但是,它不会反复对个人进行抽样.因此,如果创建的随机变量列表是[2,3,2,4,1,...],则第三个人(index = 2是第三个人)仅被选择一次而不是随机样本的两次.这意味着只要上面的随机向量包含同一个体不止一次,我就会在随机样本中得到少于100个个体(每次有4次观察).我也尝试过这个df_data.sample函数,但我似乎无法处理面板中的特定多级索引.我可以编写各种循环来完成这项工作,但我认为应该有一种更简单(更快)的方法.我使用的是Python 3.5,我使用的是pandas版本0.17.1.谢谢.

python sampling dataframe pandas

6
推荐指数
2
解决办法
1092
查看次数

样本最多

如果我想采样数字来创建一个矢量我做:

set.seed(123)
x <- sample(1:100,200, replace = TRUE)
sum(x)
# [1] 10228
Run Code Online (Sandbox Code Playgroud)

如果我想抽样20个总和为100的随机数,然后是30个数字但仍然总和为100,那么我认为这将是一个比看上去更具挑战性的.?sample并且搜索Google并未向我提供线索.然后,如果不足够接近(例如在5之内)期望的总和,则采样的循环然后拒绝可能需要一些时间.

有没有更好的方法来实现这一目标?

一个例子是:

foo(10,100) # ten random numbers that sum to 100. (not including zeros)
# 10,10,20,7,8,9,4,10,2,20
Run Code Online (Sandbox Code Playgroud)

r sampling

5
推荐指数
1
解决办法
379
查看次数