You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Numpy如何从仅含1行的2D数组中自动提取得到1D数组

Numpy维度自动处理方案

针对你的需求,有两种非常简便的实现方式,可根据实际场景选择:

场景1:仅需移除首维的长度为1的维度,其他维度保留

如果你的数组可能存在其他长度为1的维度,不想被误删,可以用一行判断实现,写法简洁无需额外封装:

processed_arr = arr[0] if arr.shape[0] == 1 else arr

场景2:确定数组仅首维可能为1,其他维度长度均大于1

直接使用Numpy内置的np.squeeze()函数即可,该函数会自动删除数组中所有长度为1的维度,完全匹配你的需求:

import numpy as np

def get_array():
    a = np.array([[0, 9, 5]])
    return a

# 单行2D数组测试
arr = get_array()
processed_arr = np.squeeze(arr)
print(processed_arr.shape) # 输出:(3,),已自动转为1D数组

# 多行2D数组测试
arr_multi = np.array([[1,2,3],[4,5,6]])
processed_multi = np.squeeze(arr_multi)
print(processed_multi.shape) # 输出:(2, 3),原2D数组保持不变

注意:如果数组存在其他长度为1的维度(例如形状为(1, 3, 1)的三维数组),np.squeeze()会将所有长度为1的维度全部移除,得到形状为(3,)的数组,这种场景建议使用场景1的判断写法。

内容的提问来源于stack exchange,提问作者mauro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:15:04