Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与嵌套for循环相比,计算二维数组项的速度更快?_Python - Fatal编程技术网

Python 与嵌套for循环相比,计算二维数组项的速度更快?

Python 与嵌套for循环相比,计算二维数组项的速度更快?,python,Python,我正在使用python 2.7 我有一个二维数组,每个轴上有几百个元素。每个元素都是“0”或“255”。我需要查看每个元素,并将“0”或“1”写入具有相同维度的不同数组中。目前,我有一个嵌套的for循环结构,它遍历行和列 这真的很慢。什么是更好的实现?如果我将矩阵乘以常数1/255会怎么样。这将保持零为零,并将255转换为“1”。但这只是用循环换取大量倍数,这可能有其自身的速度问题 想法?我也会使用numpy.array进行快速数组操作,下面是一个示例: import numpy as np #

我正在使用python 2.7

我有一个二维数组,每个轴上有几百个元素。每个元素都是“0”或“255”。我需要查看每个元素,并将“0”或“1”写入具有相同维度的不同数组中。目前,我有一个嵌套的for循环结构,它遍历行和列

这真的很慢。什么是更好的实现?如果我将矩阵乘以常数1/255会怎么样。这将保持零为零,并将255转换为“1”。但这只是用循环换取大量倍数,这可能有其自身的速度问题


想法?

我也会使用numpy.array进行快速数组操作,下面是一个示例:

import numpy as np
# Create an example array of shape (100, 100) filled with either 0 or 255
a = 255*np.random.randint(2, size=10000).reshape(100,100)

# Transform it as you want
1*(a==255)

听起来你需要这里。你用新阵列做什么?需要
1
s有什么办法吗?乘以1./255不是一个好主意。首先,如果要保留旧数组,还必须进行复制,并且要从
int
更改为
float
您实际拥有什么?列表列表(
foo[y][x]
),平面列表或array.array(
foo[y*w+x]
),带元组键的dict(
foo[x,y]
)?对于平面表示,foo中x的
[int(bool(x))
就可以了。你能给我们看看你的代码吗?还有数百个二维元素,需要毫秒才能执行?所以我不明白“慢”?