gpt4 book ai didi

python - 如何合并2个数组python(类似于SQL Join)

转载 作者:行者123 更新时间:2023-11-30 09:59:10 26 4
gpt4 key购买 nike

我有 2 个大数组 (500,1,23000) 和另一个大数组 (700,1,25000) 我需要合并它们。他们是不同的

简单的例子是这样的:

a = np.array([['a', 3, 5, 6, 9], ['b', 14, 15, 56]])
b = np.array([['b', 4, 76, 44, 91, 100], ['c', 14, 15],['d',2,6,7])

期望的结果:

c = [['a', 3, 5, 6, 9], ['b', 4, 76, 44, 91, 100],['c', 14, 15],[ 'd', 2, 6, 7]]

这是机器学习数据预处理的一部分。

最佳答案

这可能会变得更快(它会遍历两个列表两次),但应该会给你你想要的。

import numpy as np
from collections import defaultdict

a = np.array([['a', 3, 5, 6, 9], ['b', 14, 15, 56]])
b = np.array([['b', 4, 76, 44, 91, 100], ['c', 14, 15],['d',2,6,7]])

def dictify(arr):
return defaultdict(lambda : [], {x[0]: x[1:] for x in arr})

d1 = dictify(a)
d2 = dictify(b)

new_keys = set.union(set(d1.keys()), set(d2.keys()))

ans = [[k] + d1[k] + d2[k] for k in new_keys]

ans 的值为:

[['d', 2, 6, 7], ['c', 14, 15], ['a', 3, 5, 6, 9], ['b', 14, 15, 56, 4, 76, 44, 91, 100]]

关于python - 如何合并2个数组python(类似于SQL Join),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59725375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com