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

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

如何使用坐標列表從 2d numpy 數組中最好地選擇值?

如何使用坐標列表從 2d numpy 數組中最好地選擇值?

慕勒3428872 2023-07-11 17:17:05
我試圖了解使用坐標列表(不使用循環)從 2d NumPy 數組中提取值的最佳方法。例如:import numpy as nparr = np.array([    ['AA','AB','AC'],    ['BA','BB','BC'],    ['CA','CB','CC']])coordinates = [(0,0), (1,1)]經過一些實驗:# This works but does not return what I expected# I expected ['AA','BB'], but returned ['AB,'AB']arr[(0,0), (1,1)]# This does not workarr[*coordinates]想法?
查看完整描述

3 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

您需要使用雙索引。第一個數組分配給x坐標,另一個數組分配給y坐標,如下所示:

x, y = np.transpose(np.array(coordinates))
arr[x, y]

使用時盡量避免列表理解numpy:)


查看完整回答
反對 回復 2023-07-11
?
MM們

TA貢獻1886條經驗 獲得超2個贊

我的意思是你總是可以做

[arr[coordinates[0]],arr[coordinates[1]]]

得到你想要的結果。這將評估為 ['AA','BB']。

對您可以執行的任何大小的坐標列表進行概括:

result = [arr[coordinate] for coordinate in coordinates ]

這就是你想要的嗎?


查看完整回答
反對 回復 2023-07-11
?
千巷貓影

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

使用列表理解:


result = [arr[c] for c in coordinates]

代碼示例:


import numpy as np


arr = np.array([["AA", "AB", "AC"], ["BA", "BB", "BC"], ["CA", "CB", "CC"]])


coordinates = [(0, 0), (1, 1)]

result = [arr[c] for c in coordinates]

print(result)

輸出:


['AA', 'BB']


查看完整回答
反對 回復 2023-07-11
  • 3 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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