我必须迭代二维整数数组中的所有项目并更改值(根据某些规则,不重要)。
我很惊讶 python 运行时和 C# 或 java 运行时之间的性能差异有多大。我是否写了完全错误的python代码(v2.7.2)?
import numpy
a = numpy.ndarray((5000,5000), dtype = numpy.int32)
for x in numpy.nditer(a.T):
x = 123
>python -m timeit -n 2 -r 2 -s "import numpy; a = numpy.ndarray((5000,5000), dtype=numpy.int32)" "for x in numpy.nditer(a.T):" " x = 123"
2 loops, best of 2: 4.34 sec per loop
例如,C# 代码只执行 50 毫秒,即 python 几乎慢了 100 倍!(假设matrix
变量已经初始化)
for (y = 0; y < 5000; y++)
for (x = 0; x < 5000; x++)
matrix[y][x] = 123;