我試圖使用存儲在pandas DataFrame中的方法和標準偏差從正態分佈進行採樣。使用來自python熊貓數據幀的數據從正態分佈進行採樣
例如:
means= numpy.arange(10)
means=means.reshape(5,2)
生產:
0 1
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
和:
sts=numpy.arange(10,20)
sts=sts.reshape(5,2)
生產:
0 1
0 10 11
1 12 13
2 14 15
3 16 17
4 18 19
如何生成具有相同形狀的另一個熊貓數據框,但是使用相應的平均值和標準偏差從正態分佈採樣得到的值。
即該新數據幀的位置0,0
將採用mean=0
和standard deviation=10
等的正態分佈進行採樣。
我迄今爲止功能:
def make_distributions(self):
num_data_points,num_species= self.means.shape
samples=[]
for i,j in zip(self.means,self.stds):
for k,l in zip(self.means[i],self.stds[j]):
samples.append(numpy.random.normal(k,l,self.n))
會從我的分佈樣,但我有困難的把數據回同一形狀的數據幀的平均值和標準偏差DFS。有沒有人有任何建議如何做到這一點?
在此先感謝。
嗨凱文,這看起來不錯,但我可以檢查我的理解......你說的是,命令'np.random.normal(means,sts)'將需要兩個df(mean和sts)和sample來回在逐個元素基礎上的正態分佈?所以基本上,它的工作方式與如果means和sts是整數/浮點數完全相同?歡呼聲 – CiaranWelsh
我認爲你的理解正確。如果您查看廣播鏈接,它會顯示一些非常簡單的示例,例如數組'a' *數組'b',以便您可以查看操作。這就是爲什麼我在第二個塊中包含打印語句,以便用ints複製行爲。我認爲你已經明白了!廣播是一個非常強大的內置numpy工具,可以提供戲劇性的性能升級並避免大數據集上的循環。 – Kevin