如何从多维NumPy数组中提取形状为(1,31)的单条记录?
提取NumPy单条记录并保留(1, 31)二维形状的实现方法
你当前的X_test是形状为(281, 31)的二维数组,常规单值索引X_test[i]会返回形状为(31,)的一维数组,若要保留二维结构可以用以下几种常用方案:
- 切片索引法(最便捷,推荐)
取第i条(i从0开始计数)记录的写法为:X_test[i:i+1]
通过行维度的左闭右开切片规则,哪怕仅获取1行数据也会自动保留二维结构,列维度的全选冒号可以省略,最终返回的数组形状正好是(1, 31)。示例取第一条记录:
res = X_test[0:1] print(res.shape) # 输出 (1, 31)
- 新增维度法
先拿到一维单条记录,再通过新增行维度调整形状:
# 写法1:索引时直接加维度 res = X_test[i, np.newaxis, :] # 写法2:拿到一维结果后加维度,np.newaxis可以替换为None res = X_test[i][np.newaxis, :]
- reshape调整法
对一维的单条结果调用reshape方法修改形状,-1会自动匹配剩余维度的长度,无需手动指定列数:res = X_test[i].reshape(1, -1)
内容的提问来源于stack exchange,提问作者Zia
相关产品推荐
相关产品推荐

