Это, наверное, простой вопрос, но я нигде не могу найти ответа.
Скажем, у меня есть массив numpy, как показано ниже:
x = np.array([[2,3],[1,0],[5,6]])
Я ищу способ сказать, существует ли значение в x, сделайте что-нибудь.
Например
если x [2] [1] существует, сделайте что-нибудь: Это происходит потому, что он существует (и имеет значение 6)
если существует x [4] [2], сделайте что-нибудь: Этого не происходит, потому что он не существует (но не вызывает ошибку)
Благодарю вас!






In [114]: x = np.array([[2,3],[1,0],[5,6]])
In [115]: x[2][1]
Out[115]: 6
In [116]: x[2,1] # more idiomatic indexing
Out[116]: 6
Индексирование за пределами допустимого диапазона вызывает ошибку:
In [117]: x[4][2]
Traceback (most recent call last):
File "<ipython-input-117-74efee77abf6>", line 1, in <module>
x[4][2]
IndexError: index 4 is out of bounds for axis 0 with size 3
In [118]: x[4,2]
Traceback (most recent call last):
File "<ipython-input-118-97c89dcf326d>", line 1, in <module>
x[4,2]
IndexError: index 4 is out of bounds for axis 0 with size 3
Я пытался написать два цикла, в которых, если бы индекс значения не существовал, он бы просто его пропустил.
Если вы индексируете срезы, вы можете получить «пустое» окно, например arr[26:29, 28:32]. То есть вы можете «срезать» край без предупреждения (это верно и для списков Python). Похоже, это более серьезная задача, связанная с convolving и другой обработкой изображений. Если у numpy нет инструментов, вы можете поискать в scipy или другом научном комплекте.
Просто используйте x.shape (). Это возвращает кортеж с размерами, поэтому в вашем примере вам нужно только проверить, если 4 <x.shape () [0] и 2 <x.shape () [1].
это будет работать!
Я знаю, что форма моего массива - 28x28. На самом деле я пытаюсь написать функцию размытия, которая принимает среднее значение из 8 цифр вокруг нее и самой себя. Проблема в том, что на краях нет 8 цифр, поэтому мне нужно что-то, что объясняет это.