如何将Numpy数组有效地转化为集合? 您所在的位置:网站首页 flatten模板 如何将Numpy数组有效地转化为集合?

如何将Numpy数组有效地转化为集合?

#如何将Numpy数组有效地转化为集合?| 来源: 网络整理| 查看: 265

你的问题的当前状态(可以随时改变):我怎样才能有效地从一个大数组中删除唯一的元素?

import numpy as np rng = np.random.default_rng() arr = rng.random((3000, 30000)) out1 = list(map(np.unique, arr)) #or out2 = [np.unique(subarr) for subarr in arr]

在IPython外壳中的运行时间。

>>> %timeit list(map(np.unique, arr)) 5.39 s ± 37.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) >>> %timeit [np.unique(subarr) for subarr in arr] 5.42 s ± 58.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

更新:如@hpaulj在他的评论中指出,我的假例子是有偏见的,因为浮点随机数几乎肯定是唯一的。所以这里有一个更像生活的例子,用整数的数字。

>>> arr = rng.integers(low=1, high=15000, size=(3000, 30000)) >>> %timeit list(map(np.unique, arr)) 4.98 s ± 83.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) >>> %timeit [np.unique(subarr) for subarr in arr] 4.95 s ± 51.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

在这种情况下,输出列表中的元素有不同的长度,因为有实际的重复内容需要删除。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有