python - 在 numpy 中从 3d 获取特定的 2d 数组
问题描述
有没有办法避免使用 for 循环并仅通过调用带有一些索引的 arr 来获得结果?潜在的 dim1 将等于 50 000,dim2 高达 1000,dim3 固定为 3。
import numpy as np
dim1 = 10
dim2 = 2
dim3 = 3
arr = np.arange(60).reshape(dim1,dim2,dim3)
arr2 = np.arange(dim1*dim2).reshape(dim1,dim2)
np.mod(arr2,dim3,out=arr2)
res = []
rng = np.arange(dim1)
for x in range(dim2):
sl = arr2[:,x]
temp = arr[rng,x,sl]
res.append(temp)
res = np.asarray(res).T
基本上,我想从 3D 数组 arr 中提取值,但是矩阵 arr2 指示要选择哪些列。
最好的
解决方案
推荐阅读
- c# - C# HttpClient 不处理 304/307 重定向
- python - 对于第 2 列中的给定值,基于第 1 列之前和之后打印
- machine-learning - 在 CNN 中如何准确编码位置信息是否存在基本限制
- azure-devops - Azure Devops - 是否可以在管道运行之间对阶段进行排队
- python - Kaggle - 完整排行榜下载
- azure - 无法使用 FTP 连接到 Azure 服务器
- flutter - Flutter 更新 Text Widget
- android - 未显示实时数据(Android Studio)
- node.js - NodeJS - 使用协议 HTTPS 建立连接 WebSocket
- php - Laravel 关系超过 4 个表