相关疑难解决方法(0)

Python:多维数组的迭代速度超慢吗?

我必须迭代二维整数数组中的所有项并更改值(根据某些规则,不重要).

我很惊讶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
Run Code Online (Sandbox Code Playgroud)
>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
Run Code Online (Sandbox Code Playgroud)

例如,C#代码只执行50ms,即python几乎慢100倍!(假设matrix变量已经初始化)

for (y = 0; y < 5000; y++)
for (x = 0; x < 5000; x++)
    matrix[y][x] = 123;
Run Code Online (Sandbox Code Playgroud)

python performance numpy

4
推荐指数
3
解决办法
6561
查看次数

标签 统计

numpy ×1

performance ×1

python ×1