python - 如何根据一维数组值获取二维数组值?
问题描述
>>> image = np.arange(20).reshape((4, 5))
>>> image
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
>>> idx = [[2, 1], [2, 3], [3, 4]]
如何从image
指定坐标的数组中获取值idx
?从上面的代码中,我想得到值 11 ( image[2, 1]
)、13 ( image[2, 3]
) 和 19 ( image[3, 4]
)。谢谢你。
解决方案
(如果你要使用 numpy,请使用 numpy)
做出定义:
>>> image = np.arange(20).reshape((4, 5))
>>> idx = np.array([[2, 1], [2, 3], [3, 4]]).T
使用 Numpy 的精美索引功能的解决方案:
>>> image[tuple(idx)]
array([11, 13, 19])
推荐阅读
- java - 不兼容的返回类型(Java)
- python - 如何使用python将csv文件上传到API
- typescript - 使用类组件在 Vue mixin 中实现 typescript 泛型
- visual-studio-code - Visual Studio Code - 通过跨多个页面的一行中的数学运算更改特定整数的值
- javascript - 在 jquery 加载此元素后使用 javascript 修改元素
- typescript - 在 TypeScript 中,我可以指定对象字段的类型,同时还能推断出文字键类型吗?
- javascript - 使用 jQuery 更改 data.color 不透明度
- android - amplify push 导致错误:push 操作时出错 \app\src\main\res\raw 包含无效的WIN32 路径字符
- node.js - 尝试缓存 UnhandledPromiseRejectionWarning discord.js
- ios - cordova run ios - 模拟器打开但应用程序未安装 - 错误操作无法完成。FrontBoard 不知道应用程序“myApp”