python - 仅获取满足 numpy 数组中条件的值

标签 python arrays numpy

必须有一种(非常)快速有效的方法来仅从 numpy 数组中获取元素,或者更有趣的是从它的切片中获取元素。 假设我有一个 numpy 数组:

import numpy as np
a = np.arange(-10,10)

如果我有一个列表:

s = [9, 12, 13, 14]

我可以从 a 中选择元素:

a[s]  #array([-1,  2,  3,  4])

我怎样才能拥有一个由 a[s] 中满足条件的元素组成的(numpy)数组,即是正数(或负数)? 结果应该是

np.ifcondition(a[s]>0, a[s])  #array([2,  3,  4])

它看起来微不足道,但我无法找到一个简单而浓缩的表达方式。我敢肯定口罩可以,但对我来说看起来并不直接。 但是,两者都不是:

a[a[s]>0]
a[s[a[s]>0]]

其实都是不错的选择。

最佳答案

怎么样:

In [19]: b = a[s]

In [20]: b[b > 0]
Out[20]: array([2, 3, 4])

关于python - 仅获取满足 numpy 数组中条件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029029/

相关文章:

python - 查看不同数据类型下的对象数组

python - NumPy:从可迭代对象创建多维数组

python - 如何在 python 中导出给定(iso)周数/年的周开始

Python:加快重复执行的 eval 语句的方法?

c# - 将 JSON 数组发布到 mvc Controller

java - 如何安全地深度复制不规则二维数组

python - 在 Windows 上使用 MKL 编译 NumPy - DLL 加载失败

python - 在python中使用for循环生成mySQL插入语句

python - Django过滤查询集__in为列表中的*每个*项目

java - 在java中存储二维数组的最小方式