Py学习  »  Python

python使数组变平,为什么funtools比较慢?

Tommy Yu • 5 年前 • 1902 次点击  

基于这个问题 python flatten an array of array

我想要一个比双循环解决方案更快的方法。所以我写了一个基于functools的函数,但是它看起来慢得多。

orders2.shape
(9966, 1)

import time

t0 = time.time()
[x for i in orders2.values.tolist() for x in i[0].tolist()]
t1 = time.time()

t1-t0
0.009984493255615234
import time

t0 = time.time()
functools.reduce(lambda a,b: a+b[0].tolist() , orders2.values.tolist(), [])
t1 = time.time()

t1-t0
1.4101920127868652

我的问题是1。怎么会这样?2.在使用大数据时,functools算法会比双循环算法快吗?3.还有比双循环更快的算法吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46543
 
1902 次点击  
文章 [ 3 ]  |  最新文章 5 年前