Проверьте, существует ли значение по индексу в массиве numpy

Это, наверное, простой вопрос, но я нигде не могу найти ответа.

Скажем, у меня есть массив numpy, как показано ниже:

x = np.array([[2,3],[1,0],[5,6]])

Я ищу способ сказать, существует ли значение в x, сделайте что-нибудь.

Например

если x [2] [1] существует, сделайте что-нибудь: Это происходит потому, что он существует (и имеет значение 6)

если существует x [4] [2], сделайте что-нибудь: Этого не происходит, потому что он не существует (но не вызывает ошибку)

Благодарю вас!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
22
2

Ответы 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

Я знаю, что форма моего массива - 28x28. На самом деле я пытаюсь написать функцию размытия, которая принимает среднее значение из 8 цифр вокруг нее и самой себя. Проблема в том, что на краях нет 8 цифр, поэтому мне нужно что-то, что объясняет это.

kdbaseball8 09.04.2021 23:40

Я пытался написать два цикла, в которых, если бы индекс значения не существовал, он бы просто его пропустил.

kdbaseball8 09.04.2021 23:41

Если вы индексируете срезы, вы можете получить «пустое» окно, например arr[26:29, 28:32]. То есть вы можете «срезать» край без предупреждения (это верно и для списков Python). Похоже, это более серьезная задача, связанная с convolving и другой обработкой изображений. Если у numpy нет инструментов, вы можете поискать в scipy или другом научном комплекте.

hpaulj 10.04.2021 02:49

Просто используйте x.shape (). Это возвращает кортеж с размерами, поэтому в вашем примере вам нужно только проверить, если 4 <x.shape () [0] и 2 <x.shape () [1].

это будет работать!

kdbaseball8 09.04.2021 23:43

Другие вопросы по теме