如何将numpy嵌套数组按指定位置提取并合并为多个独立数组
import numpy as np # 原始嵌套数组 res = [[[1, 2], [5, 6], [7, 8]], [[1, 2], [5, 6], [7, 8]], [[1, 2], [5, 6], [7, 8]], [[1, 2], [5, 6], [7, 8]], [[1, 2], [5, 6], [7, 8]]] # 转换为numpy数组 arr = np.array(res) # 提取并展平得到目标数组 a = arr[:, 0, :].flatten() b = arr[:, 1, :].flatten() c = arr[:, 2, :].flatten()
逻辑说明
转换后的numpy数组形状为(5, 3, 2),三个维度分别对应外层5个二级数组、每个二级数组内的3个三级元素、每个三级元素的2个数值:
- 索引
[:, 0, :]表示取所有外层二级数组的第0个三级元素的全部数值,得到形状为(5,2)的数组,调用flatten()方法即可将其压为1维,得到目标数组a - 同理替换第二个维度的索引为1、2,即可得到数组b、c
运行后三个数组的输出结果和需求完全一致。
内容的提问来源于stack exchange,提问作者NoName91
相关产品推荐
相关产品推荐

