在下面的代码中,我在selected_rows和selected_patch中的':'附近遇到语法错误 我不明白该如何纠正 有人可以帮我吗?
def selectNeighboringPatch(matrix, pos_row, pos_col, ex_len):
selected_rows = matrix([ range(pos_row - ex_len , pos_row + ex_len+1) , : ])
selected_patch = selected_rows([ : , range(pos_col - ex_len , pos_col + ex_len + 1)])
return selected_patch
selectNeighboringPatch( matrix = ([[1,1,1,1] ,[1,1,1,1] ,[1,1,1,1] ,[1,1,1,1]]) ,pos_row = 0 ,pos_col = 0 , ex_len = 2 )
答案 0 :(得分:0)
matrix([...])
是使用列表文字调用可调用对象的语法。您通常会将此视为
sum([1, 2, 3, 4])
括号中的表达式
selected_rows = matrix([ range(pos_row - ex_len , pos_row + ex_len+1) , : ])
不是有效的列表文字,这是语法错误的原因。你可能是说
selected_rows = matrix[ range(pos_row - ex_len , pos_row + ex_len+1) , : ]
:
有一个有效的python表达式(等效于slice(None)
),但不要指望多维切片能像在大熊猫数据帧上那样作用于常规python列表。