python - 使用元组索引 Numpy 数组维度
问题描述
我有一个 numpy 数组,例如arr = np.arange(16).reshape(2,2,2,2)
arr[:, dim2, dim3]
当我有(dim2, dim3)
一个元组时,我想动态访问。做这个的最好方式是什么?
解决方案
如果您的数组的维数可能不同,请尝试这样的操作:
some_tuple = (dim2, dim3) # Could be (dim2, dim3, ..., dimN)
arr[(slice(None),) + some_tuple]
在这种特殊情况下,(slice(None),) + some_tuple
与 相同(slice(None), dim2, dim3)
。slice(None)
或多或少等价于“ :
”,但可以用在比“ :
”更多的地方。请注意,我放入slice(None)
了一个单元素元组(即(slice(None),)
),以便可以将其添加到some_tuple
. 还要注意,在 之后有一个逗号slice(None)
,也就是说,我不会只写(slice(None))
没有逗号。如果没有额外的逗号,它将无法工作。
推荐阅读
- css - 在 Angular 6 中访问 SCSS 中的正文语言
- azure-resource-manager - 在 ARM 部署期间尝试创建存储帐户时收到 429 错误
- python - sudo -H python2 -m pip install -U pip #更新pip
- android - 使用活动方法后Android应用程序与RabbitMQ断开连接
- reporting-services - SSRS 切换整行的可见性
- google-assistant-sdk - 下次在 Ubuntu 上安装谷歌助手时如何运行它?
- c++ - 谷歌/基准不一致的结果
- python - PyQt5 不会将设置保存到 ini 文件
- angular-cli - Bamboo - “未找到 ng 命令”
- jquery - 带有 HANDLEBARS 模板的按钮不会触发事件