Мне нужно отфильтровать массив по условию индексов. В numpy есть следующие функции:
numpy
np.where_index(lambda indices: indices[0]**2 + indices[1]**2 < 10, a)?
np.where_index(lambda indices: indices[0]**2 + indices[1]**2 < 10, a)
(аналогично фильтрации по значению np.where(a > 2, a))
np.where(a > 2, a)
вы можете использовать маскировку, как показано ниже
arr = np.arange(25).reshape(5,5) display(arr) ind_x = np.arange(arr.shape[0]).reshape(-1,1) ind_y = np.arange(arr.shape[1]) ind = (ind_x**2 + ind_y**2)<10 arr[ind]