Python 2D列表性能,没有numpy
我试图在
Python中创建一个2D列表.我找到了两种可能性.
def cArray(size): c = [[0. for i in range(size)] for j in range(size)] return c def npArray(size): np = numpy.zeros((size,size)) return np 现在这两个函数都给出了正确的答案.这里的问题在于性能.我使用timeit运行了这两个,这是我的结果: list size is 5000 number of times run is 5 cArray average time: 3.73241295815 npArray average time: 0.210782241821 很明显,我想避免使用第一个解决方案,特别是因为这将适用于高达100k的大小.但是,我也不想使用太多的依赖项.有没有办法让我有效地创建一个2D数组,没有numpy?它不需要完全达到速度,只要它不慢17倍. 解决方法
您必须选择哪一项对您更重要. Numpy具有更好的性能,因为它不使用内置的Python类型并使用为数值工作优化的自己的类型.如果您的数据将是数字,并且您将拥有100k行/列,您将看到numpy的巨大性能提升.如果你想避免numpy依赖,你将不得不忍受降低性能. (显然,您可以随时编写自己的Python库或C扩展,以针对您的特定用例进行优化,但这些依赖性将与其他任何用例一样.) 我个人建议你只使用numpy.它被广泛使用,任何正在考虑使用处理100k多维数组的库的人可能已经安装了numpy. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |