numpy - 给定某些维度的索引,如何在 numpy 数组中选择值?
问题描述
我想获取给定索引的值,例如,
matrix = np.array([[0.1,0.2,0.7],[0.3,0.3,0.4],[0.2,0.2,0.6]])
indexes = np.array([0, 2, 1])
我期望得到的是
`array([0.1,0.4,0.2])`
一个简单的解决方案是
matrix[np.arange(3), indexes]
但是,当输入是张量时,例如,我想选择CNN特征图中的最大值,其大小为[b,f,h,w],索引为:
h_idx, w_idx = np.unravel_index(np.argmax(matrix.reshape(b, m, -1), -1), [h, w])
我想用上述索引选择另一个相同大小的张量 [b, f, h, w] 的值。我能做些什么来解决这个问题?好像用np.take_along_axis
?
解决方案
推荐阅读
- r - 如何为网络分析准备邻接矩阵
- python - Pandas 在 & 和 | 中的操作顺序 短路评估中的条件
- react-native - react-native/redux中如何通过api发布数据?
- site-prism - 如何正确使用 Site-prism URL 扩展
- c# - 使用 .Include() 时 Postman 中的“无法得到任何响应”
- excel - 可以使用条件格式来更改内容而不仅仅是单元格的格式吗?
- ruby-on-rails - 如何对包含关联模型计数的列进行排序
- ios - 使用 sinch 不会为应用程序调用推送通知
- python - 您可以将协程添加到事件循环队列的前面吗?
- python-3.x - 如何在 tkinter 小部件中输入表格内容(Treeview)?