草庐IT

采样篇

全部标签

java - 是否有任何 'tricks' 可以加速非常大的背包组合类型 prob 的采样?

更新:我意识到以下问题无法以其当前形式回答,因为涉及大量数据(15k+项)。我刚刚发现,我试图帮助的小组只是让它运行一个月,然后终止它以使用结果(这就是为什么他们希望在更快的时间内获得更多结果)。这对我来说似乎很疯狂,因为他们只使用前几组数据(大列表中的最后一项从未被使用过)。所以我正在修改这个问题以获得预期输出的样本(解决方案的近似值不是完整的解决方案)。在更短的时间内完成此任务的最佳方法是什么?他们似乎想要多样化的结果样本,是遗传算法有效还是某种采样技术?问题的其余部分保持不变(相同的输入/输出),但我现在不是在寻找完整的解决方案集(因为它永远不会在一生中完成,但我希望不同解决方案

python - Librosa 的采样率问题

当使用库Librosa在16位44.1khz音频文件上执行STFT,然后执行逆STFT(iSTFT)时:importlibrosay,sr=librosa.load('test.wav',mono=False)y1=y[0,]S=librosa.core.stft(y1)z1=librosa.core.istft(S,dtype=y1.dtype)librosa.output.write_wav('test2.wav',z1,sr)输出只是一个22khz的音频文件。为什么?librosa的采样率变化在哪里? 最佳答案 librosa

python - 重新采样 Pandas 数据框正在删除列

Valtsyeardoyinterpolatregion_id2000-02-18NaN950832000200049NaN199872000-03-05NaN952214400200065NaN199872000-03-21NaN953596800200081NaN199872000-04-060.402539365954979200200097NaN199872000-04-220.540217469563616002000113NaN19987上面的数据框有一个日期时间索引。我像这样重新取样:df=df.resample('D')但是,此重采样会产生此数据框:tsyeardoyi

python - 在 python pandas 中,如何重新采样和插入 DataFrame?

我有一个pdDataFrame,通常采用这种格式:12340.11000.0000E+001.0000E+005.0000E+000.13237.7444E-058.7935E-011.0452E+000.15454.3548E-047.7209E-014.5432E-010.17681.2130E-036.7193E-012.6896E-010.19902.5349E-035.7904E-011.8439E-010.22134.5260E-034.9407E-011.3771E-01我想做的是从列表中重新采样第1列(索引)值,例如:indexList=numpy.linspace(0

python - 采样音频不保留波(矢量)!

我做了一个Telegramrobot,它的工作之一是从音频文件创建样本。现在对于发送给它的大多数音频,样本都非常好;像这样:但是,对于一些音频,样本看起来有点奇怪:如您所见,此文件中的波形未显示!(我可以向你保证,声音不是空的)为了创建示例,我使用pydub(谢谢,James!)。这是我创建示例的部分:song=AudioSegment.from_mp3('song.mp3')sliced=song[start*1000:end*1000]sliced.export('song.ogg',format='ogg',parameters=["-acodec","libopus"])然后我

Python - Pandas,重新采样数据集以具有平衡的类

使用以下数据框,只有2个可能的标签:namef1f2label0A8911A5312B8903C9204C8105C9106D2107D9708D3109E51110E36111E711我编写了一段代码,按“名称”列对数据进行分组,并将结果转换为一个numpy数组,因此每一行都是特定组的所有样本的集合,标签是另一个numpy数组:数据:[[89][53][00]]#Alable=1[[89][00][00]]#Blable=0[[92][81][91]]#Clable=0[[21][97][31]]#Dlable=0[[51][36][71]]#Elable=1标签:[[1][0][0

python - 在 Pandas 中有效地聚合重新采样的日期时间集合

给定以下数据集作为pandas数据框df:index(asDateTimeobject)|Name|Amount|IncomeOutcome---------------------------------------------------------------2019-01-28|Customer1|200.0|Income2019-01-31|Customer1|200.0|Income2019-01-31|Customer2|100.0|Income2019-01-28|Customer2|-100.0|Outcome2019-01-31|Customer2|-100.0|O

python:从二维网格中无替换地采样

我需要从range(n)中所有可能的数字元组中提取一个样本,无需替换。也就是说,我有(0,0),(0,1),...,(0,n),(1,0),(1,1),...,(1,n),...,(n,0),(n,1),(n,n),我正在尝试获取这些元素的k个样本。我希望避免显式构建此集合。如果我需要从数字序列而不是数字元组中获取样本,我知道random.sample(range(n),k)简单高效。当然,我可以显式构建包含所有可能的(n*n=n^2)元组的列表,然后调用random.sample。但如果k比n^2小得多,那可能效率不高。我不确定在效率方面,Python2和3是否相同;我使用Pytho

python - 迭代或惰性水库采样

我非常熟悉使用ReservoirSampling在一次数据传递中从一组未确定的长度中进行采样。在我看来,这种方法的一个局限性是它仍然需要在返回任何结果之前遍历整个数据集。从概念上讲,这是有道理的,因为必须让整个序列中的项目有机会替换以前遇到的项目,以实现统一的样本。有没有办法在整个序列被评估之前产生一些随机结果?我正在考虑一种非常适合python的itertools库的惰性方法。也许这可以在给定的容错范围内完成?对于这个想法,我将不胜感激!为了稍微澄清一下这个问题,这张图总结了我对不同采样技术在内存中与流式传输之间权衡的理解。我想要的是属于流采样类别的东西,我们事先不知道人口的长度。显

python - 在使用 pandas 进行上采样时,将总和平均分配给更高的采样时间段

我试图将一个时间段的总和平均分配给较高采样时间段的组成部分。我做了什么:>>>rng=pandas.PeriodIndex(start='2014-01-01',periods=2,freq='W')>>>ts=pandas.Series([i+1foriinrange(len(rng))],index=rng)>>>ts2013-12-30/2014-01-0512014-01-06/2014-01-122Freq:W-SUN,dtype:float64>>>ts.resample('D')2013-12-3012013-12-31NaN2014-01-01NaN2014-01-02