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

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

選擇 numpy.ndarray 的行,其中第一行號在某個列表中

選擇 numpy.ndarray 的行,其中第一行號在某個列表中

呼啦一陣風 2021-08-05 17:50:49
我正在尋找一種簡短的可讀方式來選擇 2D numpy.ndarray 的一些行,其中每行的第一個數字在某個列表中。例子:>>> index[4, 8]>>> data array([[ 0,  1,  2,  3],      [ 4,  5,  6,  7],      [ 8,  9, 10, 11],      [12, 13, 14, 15]])所以在這種情況下我只需要 array([[ 4,  5,  6,  7],       [8,  9, 10, 11]])因為這些行的第一個數字是 4 和 8,它們在index.基本上我正在尋找類似的東西:data[data[:,0] == i if i in index]這當然不起作用。
查看完整描述

2 回答

?
慕田峪7331174

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

您可以使用np.isin來檢查,然后像往常一樣索引:


idx = [4, 8]


data = np.array([[ 0,  1,  2,  3],

                 [ 4,  5,  6,  7],

                 [ 8,  9, 10, 11],

                 [12, 13, 14, 15]])


>>> data[np.isin(data[:,0], idx)]

array([[ 4,  5,  6,  7],

       [ 8,  9, 10, 11]])


查看完整回答
反對 回復 2021-08-05
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

如果您想使用列表isin推導式,以下是方法(不過,對于這個用例無疑更好):


>>> np.array([e for e in data if e[0] in index])

array([[ 4,  5,  6,  7],

       [ 8,  9, 10, 11]])


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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