python - 获取 NumPy 数组中多个索引处的元素
问题描述
正如文档所解释的那样,我正在尝试访问 NumPy 数组的特定行和列,但我认为我遗漏了一些东西。
我有以下数组:
arr = np.random.randint(10, size=(6, 4))
array([[1, 9, 6, 4],
[8, 5, 0, 3],
[3, 7, 3, 2],
[1, 4, 8, 0],
[5, 5, 8, 0],
[0, 6, 4, 9]])
我想得到第一行和最后一行;以及第一、第三和最后一列,所以我正在尝试:
arr[(0, -1),(0, 1, 3)]
但这会产生以下错误:
IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (2,) (3,)
我想我误解了这种类型的整数索引。我希望这个输出:
array([[1, 9, 4],
[0, 6, 9]])
我可以这样做,但感觉真的很尴尬:
arr[(0,-1),:][:,(0,1,3)]
如何获得不同维度的第 i 个元素?
解决方案
您正在寻找np.ix_
:
arr[np.ix_((0, -1),(0, 1, 3))]
结果是
array([[1, 9, 4],
[0, 6, 9]])
推荐阅读
- python - 如果列值等于 NaN 或零,我该如何计算?
- php - 在 Laravel eloquent 中使用中间关系过滤数据透视表数据
- java - java - 如何在java中正确设置csv文件列格式?
- cobol - 文件辅助中的字帖错位
- git - “致命无法访问 [路径] 连接 gihub.com 端口 443 连接被拒绝”尝试连接 github 存储库 - 不使用代理
- javascript - 使其成为节点应用程序后 P5JS CORS 错误
- php - 使用应用访问令牌访问 Microsoft Graph 资源(无需用户登录)
- python - 将列表转换为每两个元素的元组列表
- r - 引用依赖于 Shiny 中的输入的列名
- vue.js - 在独立项目中拆分整体前端并将它们组合在一个页面中