我试图在2D numpy数组中搜索特定值,get_above方法返回字符“initial char”上方的坐标列表
def get_above(current, wordsearch):
list_of_current_coords = get_coords_current(current, wordsearch)
#print(list_of_current_coords)
length = len(list_of_current_coords)
first_coords = []
second_coords = []
for x in range(length):
second = list_of_current_coords[x][1]
new_first = list_of_current_coords[x][0] - 1
first_coords.append(new_first)
second_coords.append(second)
combined = [first_coords, second_coords]
above_coords = []
for y in range(length):
lst2 = [item[y] for item in combined]
above_coords.append(lst2)
return above_coords
def search_above(initial_char, target, matrix):
above_coords = get_above(initial_char, matrix)
length = len(above_coords)
for x in range(length):
if matrix[above_coords[x]] == target:
print(above_coords[x])
else:
print('not found')
调用函数时出现此错误:
ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()
任何帮助都将不胜感激!
ValueError是由
if
语句中的数组比较引起的。让我们制作一个更简单的测试用例:
m==3
测试生成一个布尔数组。不能在if
上下文中使用。any
或all
可以将该数组压缩为一个标量布尔值:所以在
看看
matrix[above_coords[x]] == target
,并决定如何将其转换为标量真/假值。相关问题 更多 >
编程相关推荐