【发布时间】:2021-03-11 17:59:51
【问题描述】:
我正在努力加快我的 Python 代码的速度。我认为我的代码的主要瓶颈位于以下函数中,其中 k 是计数器,m 是空矩阵,image3 是包含 0 和 1 的矩阵。你有什么建议吗? p.s 我已经尝试使用 Cython 但没有取得多大成功,所以我想知道是否有一些更简单的方法来解决这个问题。提前感谢您的帮助。
def make_step(k,m,image3):
for i in range(len(m)):
for j in range(len(m[i])):
if m[i][j] == k:
if i>0 and m[i-1][j] == 0 and image3[i-1][j] == 0:
m[i-1][j] = k + 1
if j>0 and m[i][j-1] == 0 and image3[i][j-1] == 0:
m[i][j-1] = k + 1
if i<len(m)-1 and m[i+1][j] == 0 and image3[i+1][j] == 0:
m[i+1][j] = k + 1
if j<len(m[i])-1 and m[i][j+1] == 0 and image3[i][j+1] == 0:
m[i][j+1] = k + 1
【问题讨论】:
-
我投票结束这个问题,因为您的代码有效,但您正在寻找代码审查。因此这个问题属于:codereview.stackexchange.com
-
您能否分享一下如何在此函数之外更改 k 变量的完整示例?
-
是
m和image3numpy 矩阵吗?还是列表? -
另外,你说
m是空的,但你的意思是它最初是一个零矩阵吗?然后随着k的增加逐步更新? -
回答this question 可能会有所帮助
标签: python performance