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

Python Numpy多维数组按行拼接实现预期输出格式的方法咨询

修改后的可实现需求代码

import numpy as np

a = np.array([[0,12],[1,40],[0,55],[1,23],[0,123.5],[1,4]])
b = np.array([[0,3],[1,10],[0,55],[1,34],[1,122],[0,123]])
c = np.array([[0,3],[1,10],[0,55],[1,34],[1,122],[0,121]])
d = np.array([[0,40],[1,55],[0,24],[0,123],[0,4]])
e = np.array([[1,40.2],[1,55]])

def comp(a, other):
    # 初始化为列数为2的空二维数组,和待拼接的单条数据形状匹配
    difference = np.empty((0, 2))
    for i in a:
        for j in other:
            if np.allclose(i, j, atol=0.5):
                # 沿行方向拼接,每匹配到一条就新增一行
                difference = np.concatenate((difference, [i]), axis=0)
    if difference.size > 0:
        # 转成列表打印的格式和你期望的完全一致,要保留numpy数组格式直接打印difference即可
        print(difference.tolist())
    else:
        print("No difference")

comp(a, b)
comp(a, c)
comp(a, d)
comp(a, e)

核心改动说明

  • 修正了拼接方向:原来用axis=1是沿列方向横向拼接,所有匹配到的内容都会被合并到同一行,改成axis=0沿行方向纵向拼接,每次匹配都会新增一行。
  • 调整了空数组初始化规则:原来np.array([[]])的形状是(1,0),和待拼接的(1,2)形状的单条数据维度不匹配,改成np.empty((0, 2))初始化形状为(0,2)的空数组,拼接不会出现维度兼容问题。

运行上述代码输出完全符合你给出的预期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:36:02