我有兩個numpy數組x和y,它們的長度爲10,000。 我想繪製一個包含x和y的1,000個條目的隨機子集。 有沒有一種簡單的方法來使用x和y上的可愛,緊湊的random.sample(population,k)來選擇相同的相應索引? (y和x向量通過函數y(x)表示)。兩個數組的Python隨機樣本,但匹配索引
謝謝。
我有兩個numpy數組x和y,它們的長度爲10,000。 我想繪製一個包含x和y的1,000個條目的隨機子集。 有沒有一種簡單的方法來使用x和y上的可愛,緊湊的random.sample(population,k)來選擇相同的相應索引? (y和x向量通過函數y(x)表示)。兩個數組的Python隨機樣本,但匹配索引
謝謝。
可以索引陣列上使用np.random.choice
並將其應用到兩個數組:
idx = np.random.choice(np.arange(len(x)), 1000, replace=False)
x_sample = x[idx]
y_sample = y[idx]
只是壓縮兩者結合起來並用其作爲人口:
random.sample(zip(xs,ys), 1000)
其結果將是對應的條目千對(2-元組)從xs
和ys
。
非常感謝!我沒有意識到你可以調用像x [idx]這樣的數組的條目! – Cokes
很高興幫助。現在你已經知道了,如果你像'x_sample = np.take(x,idx)'那樣做,它實際上會更快(但可能不太清晰)。 – Jaime