【发布时间】:2019-03-28 09:07:24
【问题描述】:
我有 100 个大数组,每个数组有 250,000 个元素。我想找到在这些数组中找到的共同值。我知道不会在所有 100 个数组中找到值,但会在多个数组中找到少量值(我怀疑 10-30%)。我想找出在这些数组中以最高频率找到的值。 (旁白:数组没有重复)
我知道我可以遍历数组并最终找到它们,但这需要一段时间。我也知道np.intersect1d 函数,但我只给出在所有数组中找到的值,而我正在寻找只会在 100 个数组中的大约 20 个中找到的值。
我最好的选择是使用np.intersect1d 函数并循环遍历所有可能的数组组合,这肯定需要一段时间,但只要简单地循环遍历所有 250,000 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 个不同的数组中找到?
【问题讨论】:
-
所有数组的大小都一样吗?你能拥有一个 250k x 100 的大阵列吗?
-
不,它们不是,通常在 220,000-280,000 之间
标签: python arrays numpy array-intersect