2017-06-05 40 views
0

假設我有一個位置信息,形式爲兩個大的一維數組X和Y.我想從這個數組中取樣非均勻位置。 我想我可以用np.random.choice做到這一點,但因爲它只接受一維數組和我顯然不能做用np.random.choice查找非均勻樣本的索引

Xsample = np.random.choice(X,N,P)

Ysample = np.random.choice(Y,N,p)

與樣品中的點的n個,和PA概率陣列,因爲這將樣品Xsample和Ysample不同點,我留下找到一種方法來獲得一個抽樣的指標。問題是不能保證列表中的數字是唯一的,所以不能完全使用np.where。

有什麼想法?

回答

0

Doh,我只能從索引中抽樣。 這是一個工作示例:

X = np.array([1, 2, 3, 4, 5]) 
Y = np.array([11, 12, 13, 14, 15]) 
p = [0.25, 0., 0.5, 0.25] 
sample_idxs = np.random.choice(len(X), 2, p) 
sample_idxs 
> array([2, 4]) 

X[sample_idxs] 
> array([3, 5]) 

Y[sample_idxs] 
> array([13, 15])