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

Python:根据索引集从列表中选择子集

傅宏恺
2023-03-14
问题内容

我有几个具有相同数量条目的列表(每个条目都指定一个对象属性):

property_a = [545., 656., 5.4, 33.]
property_b = [ 1.2,  1.3, 2.3, 0.3]
...

并列出具有相同长度的标志

good_objects = [True, False, False, True]

(可以很容易地用等效的索引列表代替:

good_indices = [0, 3]

生成仅包含条目或索引指示的值的新列表property_aselproperty_bsel…的最简单方法是什么True

property_asel = [545., 33.]
property_bsel = [ 1.2, 0.3]

问题答案:

您可以只使用列表推导:

property_asel = [val for is_good, val in zip(good_objects, property_a) if is_good]

要么

property_asel = [property_a[i] for i in good_indices]

后者要快一些,因为它good_indices的长度小于的长度property_a,并假设good_indices它们是预先计算的,而不是即时生成的。

编辑 :第一个选项等效于itertools.compressPython 2.7 / 3.1之后的版本。请参阅@Gary
Ker的答案。

property_asel = list(itertools.compress(property_a, good_objects))


 类似资料:
  • 在Pandas的数据框中,一些列是数字的,像浮动;一些是非数字的,像对象。我们希望删除那些数值列为NaN的行,但不删除那些非数值列为NaN的行。 例如,对于具有四列的df:a、B、C和D。a和C的数据类型为Object,B和D的数据类型为Float。 我们将只删除其中一些数字列(浮点数)为NaN的行,而不应该删除其中一些非数字列(对象)为NaN的行。 最终结果如下: 我的步骤是: 检查哪些列的数据

  • 在下面的代码中:我正在读取一个文件,获取标题行,查找特定的标题列并存储它们的索引。然后我遍历其余的行,只需要这些索引的值。

  • 问题内容: 如何DataFrame基于Python Pandas中某些列的值从中选择行? 在SQL中,我将使用: 问题答案: 要选择列值等于标量的行,请使用: 要选择列值可迭代的行,请使用: 结合以下条件: 注意括号。由于Python的运算符优先级规则,绑定比和更紧密。因此,最后一个示例中的括号是必需的。没有括号 被解析为 这导致一个系列的真值是模棱两可的错误。 要选择列值不相等的行 ,请使用:

  • 本文向大家介绍Python从列表中查找子列表元素的索引,包括了Python从列表中查找子列表元素的索引的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,该程序从列表中查找子列表元素的索引。让我们看一个例子来清楚地理解它。 输入列表 输出结果 让我们看看解决给定问题的最简单,最常见的方法。按照给定的步骤解决它。 初始化列表。 使用索引遍历列表。 遍历子列表并检查要查找索引的元

  • 问题内容: 我有2个表,一个包含我需要的最终结果,另一个包含我需要根据设定级别选择的列列表。 例如 : 所以,如果我做以下 然后,基本上我需要使用此select语句中的列名来确定从另一条语句中选择了哪些列。 香港专业教育学院尝试过的方法,我当然知道这是错的,但可以让我对我试图做的事情有所了解。 我试图以一种动态方式构建一个sql查询,该查询可以通过我放在表中的任何列进行更改。 从理论上讲,这应与以

  • 问题内容: 是否有可能以任何方式(无脚本)聚合存储在表单元格中的列。 基本上我想在这里实现的是,如果我有下表 我可以做点什么吗 我可以选择在python中编写脚本,我知道该如何实现。但是我很想知道是否可以在任何版本的SQL中使用此信息,如果信息不足,请告诉我。 问题答案: 不可以,您不能使用来自另一个查询结果的列名。 您将需要 在自己的代码中 执行此 操作 ,并将结果作为完整查询发送到Amazon

  • 因此,问题实际上是: 我创建(从熊猫文档直接复制粘贴)数据框: 这将创建一个像这样的DataFrame:(其中最左边的列实际上是索引) 然后我想给我的名字分配col2和row1的值,即4。但是我想根据col1中的值来做这件事(因为我知道这个值)。所以它看起来或多或少像这样: 我知道这没有意义,但也许有人理解这个问题,并提出了一个提示:)可能这是非常容易做到的,但我现在可以把我的头包在所有的. lo

  • 问题内容: 我一直在尝试从数据集中为所有行选择一组特定的列。我尝试了以下类似的方法。 我想提一下,所有行都包含在内,但只需要编号的列即可。有没有更好的方法来解决这个问题。 样本数据: 我试图忽略我的数据集中的工作,婚姻,教育和y栏。y列是目标变量。 问题答案: 如果需要按位置选择,请使用: 另一个解决方案是不必要的列: