python - 在 Python 中修改 Numpy 数组(元组定义)部分的更快/更好的方法?

标签 python arrays numpy

我有一个 numpy 像素数组(0 或 255),使用 .where 提取它 > 0 的元组。我现在想使用这些元组将 1 添加到单独的 2D numpy 数组中。如下所示,最好的方法是使用 for 循环,还是有更好的类似 numpy 的方法?

changedtuples = np.where(imageasarray > 0)

#If there's too much movement change nothing.
if frame_size[0]*frame_size[1]/2 < changedtuples[0].size:
    print "No change- too much movement."
elif changedtuples[0].size == 0:
    print "No movement detected."
else:
    for x in xrange(changedtuples[0].size):
        movearray[changedtuples[1][x],changedtuples[0][x]] = movearray[changedtuples[1][x],changedtuples[0][x]]+1

最佳答案

movearray[imageasarray.T > 0] += 1

其中是多余的。您可以使用 bool 掩码对数组进行索引,例如由 imageasarray.T > 0 生成的数组,以选择掩码为 True 的所有数组单元格。然后,+= 将所有这些单元格加 1。最后,T 是一个转置,因为当您增加 movearray 的单元格时,看起来您正在切换索引。

关于python - 在 Python 中修改 Numpy 数组(元组定义)部分的更快/更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102013/

相关文章:

python项目导入uwsgi如何进行单元测试?

javascript - 动态创建 JSON

python - 如何使用类似于 plt.hist 的 matplotlib 绘制 np.histogram 的结果

arrays - 尽管网上有很多例子,但我无法在 python 中获得等效的 MATLAB repmat

python 值错误 : too many values to unpack (expected . ...)

python - Pyparsing:语法在解析具有指数和对数函数的算术表达式时无法解析空格

python - 计算到平滑线的距离

c++ - 如何将数组传递给函数,以便在更改该函数中的数组值时原始数组的值不会改变?

javascript - 通过使用 Javascript 匹配元素将两个数组合并为一个数组

python - 计算python中点的导数