如何使用numpy拆分TensorFlow.Keras模型输出的预测结果数组
Numpy二维预测结果数组拆分方案
你之前拆分出错的核心原因是np.array_split默认沿第0轴(行维度)拆分,而你的Keras模型预测输出数组arr的形状为(1, 2),行维度长度仅为1,拆分为2份时就会出现一份有数据、一份为空的结果。
方案1:直接索引/解包(最简便)
你的数组只有1行2列,完全可以直接通过降维+解包拿到两个值,不需要调用拆分函数:
# 方法1:squeeze去除长度为1的维度后直接解包 X, Y = arr.squeeze() # 方法2:flatten降为一维数组后取值 arr_1d = arr.flatten() X = arr_1d[0] Y = arr_1d[1] # 方法3:直接按坐标取值 X = arr[0, 0] Y = arr[0, 1]
如果需要把numpy浮点数转为Python原生float类型,可以在取值后加.item(),示例:X = arr[0,0].item()。
方案2:调用拆分函数(显式指定拆分轴)
如果你确实需要使用numpy的拆分函数,要显式指定沿第1轴(列维度)拆分:
# array_split指定axis=1沿列维度拆分 split_res = np.array_split(arr, 2, axis=1) X = split_res[0].item() Y = split_res[1].item() # 也可以用hsplit(默认沿水平/列维度拆分) split_res = np.hsplit(arr, 2) X = split_res[0].item() Y = split_res[1].item()
内容的提问来源于stack exchange,提问作者Tutek Tutek
相关产品推荐
相关产品推荐

