我希望您能够帮助我翻译一些与IT技术相关的内容。以下是需要翻译的文本:
我正在尝试找到一种从多维数组中创建新数组的方法,只取第一列中唯一的元素,例如,如果我有一个数组:
[[1,2,3],
[1,2,3],
[5,2,3]]
操作完成后,我希望获得以下输出结果:
[[1,2,3],
[5,2,3]]
显然,第二列和第三列不需要唯一。谢谢。
我希望您能够帮助我翻译一些与IT技术相关的内容。以下是需要翻译的文本:
我正在尝试找到一种从多维数组中创建新数组的方法,只取第一列中唯一的元素,例如,如果我有一个数组:
[[1,2,3],
[1,2,3],
[5,2,3]]
操作完成后,我希望获得以下输出结果:
[[1,2,3],
[5,2,3]]
由于您希望保持第一列的唯一性,您可以使用np.unique
函数,并使用其可选的return_index
参数,该参数将为您提供在A[:,0]
元素上的唯一性中出现的第一个索引(因此满足第一行标准)。其中A
是输入数组。因此,我们可以得到一个向量化的解决方案,如下所示 -
_,idx = np.unique(A[:,0],return_index=True)
out = A[idx]
示例运行 -
In [16]: A
Out[16]:
array([[1, 2, 3],
[5, 2, 3],
[1, 4, 3]])
In [17]: _,idx = np.unique(A[:,0],return_index=True)
...: out = A[idx]
...:
In [18]: out
Out[18]:
array([[1, 2, 3],
[5, 2, 3]])
main = [[1, 2, 3], [1, 3, 4], [2, 4, 5], [3, 6, 5]]
used = []
new = [[sub, used.append(sub[0])][0] for sub in main if sub[0] not in used]
print(new)
# Output: [[1, 2, 3], [2, 3, 4], [3, 6, 5]]
[[1,4,3], [1,2,3],[5,2,3]]
,会怎么样呢? - Padraic Cunningham