亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 `numpy.take` 隨機選擇 2d 點

使用 `numpy.take` 隨機選擇 2d 點

慕碼人8056858 2023-05-16 09:54:22
問題設置:points- 2Dnumpy.array的長度N。centroids-numpy.array我從算法中得到的2D K-Means,長度k< N。作為算法的質心初始化例程MLE,我想points從centroids.所需輸出:形狀為 (N, 2) 的A numpy.array ,由從中隨機選擇的 2D 點組成centroids我的努力:我試過將numpy.take與 一起使用,numpy.random.choice如中所示Code 1,但它沒有返回所需的輸出。代碼 1:import numpy as npa = np.random.randint(1, 10, 10).reshape((5, 2))idx = np.random.choice(5, 20)np.take(a, idx)Out: array([6, 2, 3, 3, 8, 2, 5, 2, 6, 3, 3, 8, 6, 6, 6, 6, 8, 2, 6, 5])從numpy.take 文檔頁面我了解到它從展平數組中選擇項目,這不是我需要的。對于如何完成此任務的任何想法,我將不勝感激。在此先感謝您的幫助。
查看完整描述

2 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

一種方法是對索引進行采樣,然后使用它來索引的第一個維度centroids:


idx = np.random.choice(np.arange(len(centroids)), size=len(a))


out = centroids[idx]


查看完整回答
反對 回復 2023-05-16
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

是:


a = np.random.randint(1, 10, 10).reshape((5, 2))

n_sampled_points = 20

a[np.random.randint(0, a.shape[0], n_sampled_points)]

干杯。


查看完整回答
反對 回復 2023-05-16
  • 2 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號