首页 > 解决方案 > 按索引条件过滤数组

问题描述

我需要按索引条件过滤数组。有numpy如下功能:

np.where_index(lambda indices: indices[0]**2 + indices[1]**2 < 10, a)?

(类似于按值过滤np.where(a > 2, a)

标签: pythonarraysnumpy

解决方案


您可以使用遮罩来做到这一点,如下所示

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]

推荐阅读