在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历。 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import numpy as np import t
在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历。 代码如下:
由于生成的是[0,1)中的数,因此两种操作会遍历所有的元素。多轮测试后,耗时如下: 当NUM为160时:
当NUM为1600时:
结论:切片后遍历更快 一个想法:
在numpy中,为了提高效率,这种切片出来的子矩阵其实都是原矩阵的引用而已,所以改变子矩阵,原矩阵还是会变的 关于numba在小数据量下的速度慢于普通操作 实验比较:
首先,当NUM为1600时,结果如下:
其他条件相同的情况下,有切片的速度更快。同样,有numba加速的也比没加速的快。
有切片依旧比无切片的快。但是有numba加速的却比没有numba加速的慢。 实验代码如下:
结果如下:
结论: numba加速时,第一次需要编译,需要耗时。之后调用就不需要了。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27