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

如何用Numpy将坐标数组与标签数组按行合并?

Numpy数组合并的正确操作方法

你遇到的问题核心是维度不匹配:labels是一维数组(形状为(10,)),即便执行labels.T,它的形状依然是(10,),而co_ords是二维数组(形状(10,2))。np.hstack要求参与拼接的数组除了拼接轴外,其他维度必须一致,一维和二维数组直接拼接会触发维度适配错误,最终得到扁平化结果。

以下是几种正确的解决方法:

方法1:手动将labels转为二维列向量后用hstack

通过reshape或[:, np.newaxis]给一维数组添加一个新维度,转成(10,1)的二维列向量,再和co_ords拼接:

import numpy as np

co_ords = np.random.rand(10,2)
labels = np.random.choice(2,10)

# 方式A:用reshape转换维度
labels_col = labels.reshape(-1, 1)
combined = np.hstack((co_ords, labels_col))

# 方式B:用np.newaxis快速添加维度
combined = np.hstack((co_ords, labels[:, np.newaxis]))

方法2:使用np.concatenate指定拼接轴

同样需要先将labels转为二维列向量,再通过axis=1指定沿列方向拼接:

combined = np.concatenate((co_ords, labels.reshape(-1,1)), axis=1)

方法3:用np.column_stack自动处理维度

np.column_stack专门用于列方向拼接数组,会自动将一维数组转换为列向量,无需手动调整维度:

combined = np.column_stack((co_ords, labels))

验证结果:合并后的数组形状为(10,3),每行前两个元素是原坐标,第三个元素是对应标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:18