问题内容
我想使用另一个索引数组提取给定多维 numpy 数组的元素。但是它的行为并不符合我的预期。下面是一个简单的例子:
import numpy as npa = np.random.random((3, 3, 3))idx = np.asarray([[0, 0, 0], [0, 1, 2]])b = a[idx]print(b.shape) # expect (2, ), got (2, 3, 3, 3)
登录后复制
为什么会这样呢?我应该如何修改代码以使 b 仅包含两个元素:a[0, 0, 0] 和 a[0, 1, 2]?
正确答案
您正在寻找 numpy 高级索引
https://www.php.cn/link/2d661a763280f48803f3c9ba8ba0e00b
在您的情况下,您需要在每个轴上使用 idx:
a[idx[:,0], idx[:, 1], idx[:, 2]].shape == (2,) # True
登录后复制
以上就是索引多维 numpy 数组中的多个元素的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2211911.html