如何将形状为(720,48)的二维数组切片为含指定非连续列的子数组
提取二维数组指定列:保留所有行+前24列+最后7列
针对形状为(720,48)的二维数组,要保留所有行同时提取前24列和最后7列,用Python的numpy可以轻松实现,这里提供两种实用方法:
方法1:分步切片+水平拼接
先分别切出需要的列块,再把它们拼接到一起:
import numpy as np # 假设你的数组是arr,形状(720,48) # 提取所有行 + 前24列 first_24_cols = arr[:, :24] # 提取所有行 + 最后7列 last_7_cols = arr[:, -7:] # 水平拼接两个子数组,得到最终结果 result_array = np.hstack((first_24_cols, last_7_cols))
[:, :24]:冒号表示取所有行,:24表示取第0到23列(共24列)[:, -7:]:-7:表示取倒数第7列到最后一列(共7列)np.hstack():用于将两个数组沿水平方向(列维度)拼接,最终结果形状为(720, 31)
方法2:构造列索引直接提取
先构造出需要保留的列的索引列表,再一次性提取:
import numpy as np # 假设你的数组是arr,形状(720,48) # 构造列索引:前24列(0-23) + 最后7列(41-47,因为48-7=41) target_cols = np.concatenate([np.arange(24), np.arange(48-7, 48)]) # 提取指定列 result_array = arr[:, target_cols]
这种方法更适合需要灵活组合多段列的场景,直接通过索引数组精准定位要保留的列。
内容的提问来源于stack exchange,提问作者khaled khelil
相关产品推荐
相关产品推荐

