You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于其中一个数组的条件同步筛选两个NumPy数组

Python Numpy 双数组同步筛选实现

编辑:我修正了y数组,现在x、y长度一致

问题描述

我对编程不太了解,但有大量数据需要用Python分析。假设我有如下两个数组:

import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9,10])
y = np.array([25,18,16,19,30,5,9,20,80,45])

我需要筛选出y中大于17的数值,同时保留x中与y筛选后剩余数值索引相同的对应值。比如删除y中不满足条件的某个值,就要同步删除x中相同索引位置的对应值。
我尝试过如下写法,但不知道怎么同步过滤x对应的数值(实际数据的数组长度非常大,几乎不可能手动处理):

filter = np.where(y>17, 0, y)

解决方案

参考@mozway的提示,在x、y长度一致的前提下,直接使用numpy的布尔索引特性即可实现双数组的同步筛选,所需代码如下:

import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9,10])
y = np.array([25,18,16,19,30,5,9,20,80,45])
# 按y>17的条件同步筛选x和y
x_filtered = x[y > 17]
y_filtered = y[y > 17]

内容的提问来源于stack exchange,提问作者Dvir Cohen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:54:07