当前位置: 首页 > 面试题库 >

如何使用另一个数组的值过滤一个numpy数组?

宦飞
2023-03-14
问题内容

我有两个NumPy数组,例如:

a = [1,2,3,4,5]

和一个过滤器数组,例如:

f = [False, True, False, False, True]

len(a) == len(f)

我如何才能得到一个新的numpy数组,其中仅包含其中相同索引f为True的值?就我而言:[2, 5]

根据公认的解决方案(具有不同的值):

>>> a = numpy.array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
>>> b = numpy.array([True, False, True, False, True, False, True, False, True, False])
>>> a[b]
array([1, 3, 5, 7, 9])

问题答案:

NumPy支持布尔索引

a[f]

假设 af是NumPy数组而不是Python列表(如问题所示)。您可以使用进行转换f = np.array(f)



 类似资料:
  • 问题内容: 我想了解 从另一个数组的所有元素过滤数组 的最佳方法。我尝试使用过滤器功能,但是如何给它提供要删除的值并没有解决。 就像是: 如果过滤器功能没有用,您将如何实现呢? 编辑:我检查了可能重复的问题,它可能对那些容易理解javascript的人有用。选中的答案很容易。 问题答案: 您可以使用函数的参数来避免将过滤器数组存储在全局变量中。

  • 问题内容: 如果我们有一个numpy数组,例如: 我们想要设置一个元素,另一个元素 我们该怎么做? 将数组的第一个维度的每个元素设置为5 问题答案: 使用as作为数据数组和索引数组,以便每一行对应于要在数据数组中设置的一个元素,您可以执行以下操作- 样品运行- 或者,我们可以使用计算线性索引,然后使用进行赋值,就像这样- 如果您要处理三维数组,我们可以对三维索引进行切片,然后分配具有另一种方法,如

  • 我有这个数组,还有另一个数组 我想从中删除存在于中的值。 我已经这样做了: 但我得到一个错误说v.index不是一个函数

  • 问题内容: 我有一个numpy数组,如下所示: 我想将每个元素四舍五入到小数点后两位。 我该怎么办? 问题答案: Numpy提供了两种相同的方法来执行此操作。无论使用 要么 因为它们是等效的。 请参阅文档以获取更多信息。 例子:

  • 问题内容: 在不修改数组a地址的情况下,将数据从数组b复制到数组a的最快方法是什么。我需要这样做,因为外部库(PyFFTW)使用了指向无法更改的数组的指针。 例如: 是否可以不循环地进行? 问题答案: 我相信 将快速制作出深层副本。正如Funsi所提到的,最新版本的numpy也具有该功能。

  • 问题内容: 从这个问题的答案(使用一个较少的内存,沿着一个特定轴对另一个numpy数组进行排序)中,我学习了如何根据另一个numpy数组的值对多维numpy数组进行排序,而又不创建太多额外的数组。 但是,仅当数组和具有相同形状时才有效。我的数组是一维数组,但数组是ND数组(未指定N)。通过一维数组的值在特定轴上对数组进行排序是一种好方法(高效)吗? 问题答案: 使用与关键字参数: 如果要使用花式索