.net做网站教程,网络营销和网络推广有什么区别,北京外包公司 网站开发,wordpress联盟插件总第 115 篇文章#xff0c;本文大约 900 字#xff0c;阅读大约需要 3 分钟之前做1月总结的时候说过希望每天或者每2天开始的更新一些学习笔记#xff0c;这是开始的第一篇。这篇介绍的是如何把一个 itertools.chain 对象转换为一个数组。参考 stackoverflow 上的一个回答本文大约 900 字阅读大约需要 3 分钟之前做1月总结的时候说过希望每天或者每2天开始的更新一些学习笔记这是开始的第一篇。这篇介绍的是如何把一个 itertools.chain 对象转换为一个数组。参考 stackoverflow 上的一个回答Get an array back from an itertools.chain object链接如下https://stackoverflow.com/questions/26853860/get-an-array-back-from-an-itertools-chain-object例子list_of_numbers [[1, 2], [3], []]
import itertools
chain itertools.chain(*list_of_numbers)
解决方法有两种第一种比较简单直接采用 list 方法如下所示list(chain)
但缺点有两个会在外层多嵌套一个列表效率并不高第二个就是利用 numpy 库的方法 np.fromiter示例如下 import numpy as npfrom itertools import chainlist_of_numbers [[1, 2], [3], []]np.fromiter(chain(*list_of_numbers), dtypeint)
array([1, 2, 3])对比两种方法的运算时间如下所示 list_of_numbers [[1, 2]*1000, [3]*1000, []]*1000%timeit np.fromiter(chain(*list_of_numbers), dtypeint)
10 loops, best of 3: 103 ms per loop%timeit np.array(list(chain(*list_of_numbers)))
1 loops, best of 3: 199 ms per loop
可以看到采用 numpy 方法的运算速度会更快。欢迎关注我的微信公众号--算法猿的成长或者扫描下方的二维码大家一起交流学习和进步如果觉得不错在看、转发就是对小编的一个支持