当readframes()在python中使用时,在线文档表示返回采样频率,它看起来返回2个字节.我想每帧有4个字节:
left = 2 bytes
right = 2 bytes
Run Code Online (Sandbox Code Playgroud)
我是否必须检查它是单声道还是立体声,如果它是立体声,一次读2帧,如果是单声道,一次读1帧?
我正在尝试为Haskell中的假想行星生成随机质量.我想通过采样双模态分布(理想情况下是两个正态分布的叠加:一个对应于小行星,一个对应于气体巨行)来产生这些质量.我查看了统计软件包,它提供了quantile函数,可以将统一分布Double转换Double为多个分布.但似乎没有任何支持撰写发行版.
这个特殊情况可以通过选择一个分布或另一个分类来进行预测,但是我想用一个分发来做,特别是因为我可能需要稍后调整整体分布.最终,我可能会用天空测量中的真实数据替换正态分布.
我正在考虑自己实施拒绝抽样,它可以相当简单地处理任意分布,但它似乎效率很低,如果解决方案已经作为库存在,那么实现它肯定不是一个好主意.
是否有一个Haskell库支持从组合或显式指定的分发中进行采样?或者现有的Haskell实现拒绝采样?或者,是否存在两个正态分布之和的CDF逆的显式公式?
statistics haskell normal-distribution procedural-generation sampling
假设我们有以下数据
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) 我有一个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 = …
我从测量中收集了一组> 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)
我不知道它是否按我的意愿工作,因为我按照测量的顺序使用数据,这有很大的串行相关性.
在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的新手,所以当我阅读包文档时,我无法弄清楚我的视觉是否有意义或可能.如果有必要,我会很乐意使用不同的包.
当我尝试使用以下代码通过我的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对象未初始化.这些解决方案都不起作用.
但它在另一个项目中工作.有什么遗漏?
通过以下示例数据帧,我想从因子"群组"的每个级别绘制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.任何援助将不胜感激.
我与在以下面板数据的工作MultiIndex大熊猫DataFrame叫df_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.谢谢.
如果我想采样数字来创建一个矢量我做:
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)