我有100个大数组,每个数组有250000个元素。我想找到在这些数组中找到的公共值。我知道不会在所有100个数组中都找到值,但会在多个数组中找到少量值(我怀疑是10-30%)。我想找出这些数组中频率最高的值。(边点:数组没有重复项)
我知道我可以在数组中循环并最终找到它们,但这需要一段时间。我也知道np.intersect1d
函数,但我只给出在所有数组中找到的值,而我只寻找在100个数组中大约20个数组中找到的值。你知道吗
我的最佳选择是使用np.intersect1d
函数并循环遍历所有可能的数组组合,这肯定需要一段时间,但不会像循环遍历所有250000x100值那样长。
示例:
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_counts
关键字一起使用,也可以使用普通Python ^{如果您可以将阵列串联成一个250k x 100的整体,甚至可以将它们串在另一个之后,那么第一个选项就起作用了:
这将留给您一个包含所有唯一值的数组,以及它们出现的频率。你知道吗
如果数组必须保持分离,请使用
collections.Counter
来完成相同的任务。在下面,我假设您有一个包含数组的列表。有一百个单独命名的变量是毫无意义的:c=计数器() 对于阵列中的arr: c、 更新(arr)
现在^{} 将给出最常见的元素及其计数。你知道吗
相关问题 更多 >
编程相关推荐