Numpy,数组上的1:M联接

2024-04-20 08:12:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道有没有办法加入numpy阵列。你知道吗

示例:

array1 = [[1,c,d], [2,a,b], [3, e,f]]
array2 = [[2,g,g,t], [1,alpha, beta, gamma], [1,t,y,u], [3,dog, cat, fish]]

我需要加入这些数组,但是Numpy文档说如果记录不唯一,函数将失败或返回未知结果。你知道吗

有没有人在numpy数组上使用1:M连接而不是1:1连接的示例?另外,我知道我的例子是在适当的numpy格式,但它只是给一个大致的想法。你知道吗


Tags: 文档alphanumpy示例记录数组betacat
1条回答
网友
1楼 · 发布于 2024-04-20 08:12:55

您希望实现的目标看起来更像是基于两个输入数组的新嵌套列表。你知道吗

将其视为列表:

list1 = [[1,'c','d'], [2,'a','b'], [3, 'e','f']]
list2 = [[2,'g','g','t'], [1,'alpha', 'beta', 'gamma'], [1,'t','y','u'], [3,'dog', 'cat', 'fish']]

您可以通过以下操作生成所需的结果:

result = [i+j[1:] for i in list1 for j in list2 if i[0]==j[0]]

看起来是这样的:

[[1, 'c', 'd', 'alpha', 'beta', 'gamma'],
 [1, 'c', 'd', 't', 'y', 'u'],
 [2, 'a', 'b', 'g', 'g', 't'],
 [3, 'e', 'f', 'dog', 'cat', 'fish']]

相关问题 更多 >