try
/ except
Вы можете написать функцию и поймать IndexError
.Я бы также посоветовал вам не цеплять индексаторы, а использовать синтаксис arr[row, column]
.Например:
d = np.array([[3,2,1],[6,5,4],[9,8,7]])
def get_val(A, idx):
try:
return A[tuple(idx)]
except IndexError:
return False
e = [3, 0]
f = [0, 2]
get_val(d, e) # False
get_val(d, f) # 1
if
/ else
Альтернативное, более явное решение возможно с помощью конструкции if
/ else
:
def get_val(A, idx):
if all(i < j for i, j in zip(idx, A.shape)):
return A[tuple(idx)]
return False
Поскольку мы используем tuple(idx)
, оба решения работают для произвольных измерений.