对于每个矩阵元素,我想要加上它周围所有单元格的值。
从我的初始数组开始:
board = np.array([[0, 1, 1],
[0, 1, 0],
[1, 0, 0]])
我的结果应该是:
([2,2,2],
[3,3,3],
[1,2,1])
我创建了一个函数,并使用了暴力方法来查找单元格是否存在于周围。如果存在,则将其值相加并返回总和。我不确定我的 if 语句是否正确。它显示以下错误:
“数组的真值在有多个元素时是模糊的:请使用 a.any() 或 a.all()”。
def count_living_neighbors(board):
count = np.zeros(board.shape, dtype=int)
#
# YOUR CODE HERE
#
for row in range(len(board)):
for column in range(len(board[row])):
total = 0
if (board[column - 1]).any() in board:
total += board[row][column-1]
if (board[column + 1]).any() in board:
total += board[row][column+1]
if (board[row - 1]).any() in board:
total += board[row-1][column]
if (board[row + 1]).any() in board:
total += board[row+1][column]
if (board[row + 1] and board[column - 1]).any() in board:
total += board[row+1][column-1]
if (board[row - 1] and board[column - 1]).any() in board:
total += board[row-1][column-1]
if (board[row + 1] and board[column + 1]).any() in board:
total += board[row+1][column+1]
if (board[row - 1] and board[column + 1]).any() in board:
total += board[row+1][column+1]
count[row][column] = total
return count
and
。请尝试使用&
。但我认为还有几个额外的错误。 - Paul Panzer