Python中如何输出符合条件的NumPy数组元素对应索引?
获取NumPy数组中满足条件元素的索引
要获取数组中满足T<5条件的元素对应的索引,直接用NumPy的np.where()函数即可,以下是修改后的代码:
import numpy as np T = np.array([4.7, 5.1, 2.9]) # 获取符合条件的索引,[0]用于提取一维数组的索引结果 J = np.where(T < 5)[0] # 转为列表格式输出,匹配预期结果 print(f"J={J.tolist()}")
运行后输出:
J=[0, 2]
补充说明
T < 5会生成一个布尔数组[True, False, True],np.where()会返回这个数组中True值对应的位置索引。- 因为是一维数组,
np.where()返回的元组第一个元素就是索引数组,用[0]提取后,调用tolist()可以转为普通Python列表。 - 也可以用
np.nonzero(T < 5)[0]实现同样效果,np.nonzero()专门用于获取非零(即布尔值为True)元素的索引。
内容的提问来源于stack exchange,提问作者user20032724
相关产品推荐
相关产品推荐

