如何 combine/merge 具有两个键的两个结构化数组的值?

How to combine/merge the values of two structured arrays with two keys?

我有两个具有相同键和数据类型的结构化数组。

import numpy as np

# Define a dtype with x and y integers    
arr1 = np.empty(6, dtype=[('x', int), ('y', int)])
arr2 = np.empty(8, dtype=[('x', int), ('y', int)])

# Add the data to the structured array
arr1['x'] = np.array([ 32,  32,  32,  32,  32,  39])
arr1['y'] = np.array([449, 451, 452, 453, 454, 463])

arr2['x'] = np.array([ 39,  34,  32,  32,  37,  32 ,23, 12])
arr2['y'] = np.array([463, 393, 453, 452, 261, 449, 1243, 263])

两个结构化数组可以有不同的长度,如图所示。这些值出现在 xy 对中。

我想合并这两个结构化数组,这样

如果有一种有效的方法来组合两个以上的结构化数组,例如这些结构化数组中的 3 个或 4 个,那么我们将不胜感激。

在上面的例子中,我希望它合并如下,其中arr3是合并的结果:

arr3['x'] = np.array([32,32,32,32,32,39,34,37,23,12])
arr3['y'] = np.array([449,451,452,453,454,463,393,261,1243,263]) 

两个结构化数组之间的所有唯一值对都在 arr3

我已经尝试创建一些代码,但我不确定从哪里开始。谢谢。

您可以简单地将值与 np.concatenate 连接起来,然后使用 np.unique:

删除重复值
arr3 = np.unique(np.concatenate([arr1, arr2]))