Python 在多个numpy数组中查找相交值

Python 在多个numpy数组中查找相交值,python,arrays,numpy,array-intersect,Python,Arrays,Numpy,Array Intersect,我有100个大于250000个元素的大型阵列。我想找到这些数组中的公共值。我知道不会在所有100个数组中都找到值,但会在多个数组中找到少量值(我怀疑是10-30%)。我想找出这些数组中频率最高的值。(边点:阵列没有重复项) 我知道我可以循环遍历数组并最终找到它们,但这需要一段时间。我还知道np.intersect1d函数,但我只给出在所有数组中找到的值,而我只寻找100个数组中大约20个的值 我的最佳选择是使用np.intersect1d函数并循环遍历所有可能的数组组合,这肯定需要一段时间,但不

我有100个大于250000个元素的大型阵列。我想找到这些数组中的公共值。我知道不会在所有100个数组中都找到值,但会在多个数组中找到少量值(我怀疑是10-30%)。我想找出这些数组中频率最高的值。(边点:阵列没有重复项)

我知道我可以循环遍历数组并最终找到它们,但这需要一段时间。我还知道
np.intersect1d
函数,但我只给出在所有数组中找到的值,而我只寻找100个数组中大约20个的值

我的最佳选择是使用
np.intersect1d
函数并循环遍历所有可能的数组组合,这肯定需要一段时间,但不会像循环遍历所有250000 x 100的值那样长。 例如:

array_1 = array([1.98,2.33,3.44,,...11.1)
array_2 = array([1.26,1.49,4.14,,...9.0)
array_2 = array([1.58,2.33,3.44,,...19.1)
array_3 = array([4.18,2.03,3.74,,...12.1)
.
.
. 
array_100= array([1.11,2.13,1.74,,...1.1)
在所有100个数组中都没有值,是否有一个值可以在30个不同的数组中找到

您可以使用
return\u counts
关键字,也可以使用普通Python

如果您可以将阵列连接成一个250k x 100的整体,或者甚至将它们串在另一个之后,则第一个选项可以工作:

unq, counts = np.unique(monolith, return_counts=True)
ind = np.argsort(counts)[::-1]
unq = unq[ind]
counts = counts[ind]
这将给您留下一个包含所有唯一值的数组,以及它们出现的频率

如果阵列必须保持分离,请使用
collections.Counter
完成相同的任务。在下面,我假设您有一个包含数组的列表。有一百个单独命名的变量是毫无意义的:

c=计数器() 对于阵列中的arr: c、 更新(arr)


现在将为您提供最常见的元素及其计数。

所有数组的大小是否相同?你能有一个大的250k x 100阵列吗?不,它们不是,通常在220000-280000之间。好主意!谢谢你的回复,我试试看@丹尼。更新正确的感谢方式是通过点击答案旁边的复选标记来选择答案。