问题标签 [boolean-indexing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
63001 浏览

python - 获取 pandas 布尔系列为 True 的索引列表

我有一个带有布尔条目的熊猫系列。我想获取值所在的索引列表True

例如输入pd.Series([True, False, True, True, False, False, False, True])

应该产生输出[0,2,3,7]

我可以通过列表理解来做到这一点,但是有没有更干净或更快的东西?

0 投票
2 回答
507 浏览

python - 过滤numpy数组但保留原始值

换句话说,numpy 是否支持“筛分”?

我有两个数组:

我想要的是返回一个新数组,c它包含a基于掩码的原始值b

我可以通过列表理解来解决这个问题:

我也可以制作一个面具,但这需要 2 次迭代:

numpy 是否有一些原生的东西可以让一个数组像另一个数组的筛子一样工作?

0 投票
2 回答
66 浏览

python - 布尔索引,尝试使用两个条件按标签搜索,但布尔与、按位 & 和 numpy logical_and 都返回错误

我正在尝试返回与我选择的标签相对应的熊猫数据框的行。例如,在我的函数 Female 中,它返回患者为女性的所有行。对于 AgeRange,我遇到了同时满足这两个条件而没有出现错误的问题。

使用按位运算符会出现以下错误: TypeError: unsupported operand type(s) for &: 'float' and 'bool'

使用布尔值和运算符会得到以下错误: ValueError:DataFrame 的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

使用 numpy 逻辑并得到错误:ValueError:操作数无法与形状(1309,7)(135,7)一起广播。

老实说,我不确定这会给我留下什么,或者首先是什么导致了这个问题。谁能帮忙指出我哪里出错了?

0 投票
1 回答
57 浏览

python - 布尔值作为索引的 Python 效果 (a[a==0] = 1)

我目前正在实现一些我在 github 上看到的代码。

https://gist.github.com/karpathy/a4166c7fe253700972fcbc77e4ea32c5

这里的兴趣点如下:

作者在这里对图像进行预处理,以训练神经网络。我感到困惑的部分是:

我认为作者希望将列表中所有值为 144(109,而不是 0)的元素设置为特定值。但如果我是正确的,布尔值在 python 中只代表 0 或 1。因此,将列表与整数进行比较总是会导致 False,因此为 0。

这使得I[I==x] <=> I[0] : x is integer为​​什么还要费心去做呢?

我在这里想念什么?

0 投票
2 回答
106 浏览

arrays - Numpy:在其他布尔数组的“真”上覆盖布尔数组

我有一个 bool 2D 数组 A,其中 True 的数字是 bool 2D 数组 B 的维数。

我想在 A 的“真”阵列上“覆盖”B,这样我就可以得到

我的最终目标是操作数组

arr = [[1, 2 , 3 , 4, 5 ], [6,7,8,9,10], [11, 12 , 13 , 14, 15 ]]

有类似的东西

要得到

arr = [[1, 4 , 3 , 4, 7 ], [6,7,8,9,10], [11, 14 , 13 , 14, 17 ]]

提前致谢。

0 投票
1 回答
869 浏览

python - 创建新数据框时收到“布尔系列键将被重新索引以匹配数据框索引”警告

使用以下代码创建新数据框是否有任何潜在的缺点,其中我指定了我想在新数据框中看到的原始数据框中的非常具体的信息。

df_workloc = (df[df['WorkLoc'] == 'Home'][df['CareerSat'] == 'Very satisfied'][df['CurrencySymbol'] == 'USD'][df['CompTotal'] >= 50000])

我使用了 2019 年 Stack Overflow 调查数据。像这样:

WorkLoc指定受访者的工作地点。

CareerSat指定受访者的职业满意度。

CurrencySymbol指定受访者以何种货币获得报酬。

CompTotal指定受访者的总薪酬是多少。

如果有人有一种更清洁、更有效的方式来实现具有精细/特定信息的数据框,我很乐意看到它。我想做的一件事是在同一行中指定 >= 50000 和 <=75000 的 Compensation total CompTotal。但是,当我尝试包含第二个布尔值时出现错误。

提前致谢。

0 投票
1 回答
407 浏览

python - 如何使用布尔索引索引熊猫数据框?

我正在 pandas 中开始一个新的练习模块,我们在其中处理数据的索引和过滤。我遇到了一种在课程中没有解释的方法链接格式,我想知道是否有人可以帮助我理解这一点。该数据集来自财富 500 强公司列表。

问题是我们被教导通过像这样将布尔条件传递给数据框来使用布尔索引;

上面的代码是查找以“汽车及零部件”为行业的国家。模块中的最后一个练习要求我们

“创建一个系列,industry_usa,其中包含总部位于美国的公司的行业列中两个最常见值的计数。”

答案代码是

我不明白我们怎么能突然背靠背使用 df[col]df[col] ?我不应该先通过 bool 条件,然后指定我想使用 .loc 将其分配给哪一列吗?链接使用的方法与我们实践的方法非常不同。

请帮忙。我真的很困惑。

一如既往,谢谢你,堆栈社区。

0 投票
1 回答
82 浏览

pandas - 数据帧字典中数据帧的熊猫布尔索引

所以,这可能是一个非常简单的问题,但我还没有找到解决方案。我为我的愚蠢道歉。(我猜我对术语的无知阻碍了我在这里的搜索)

我有一个数据框字典(这里显示 2,但它包含更多)。

每个数据框可能有也可能没有我需要删除以进行进一步处理的行。我可以轻松地从一个数据框中删除这些行,如下所示:

但是如果我像这样遍历字典,什么也不会发生。不需要的行仍在数据框中。

我愚蠢地inplace=True陷入了困境.loc,显然这没有用。旁注,我不能这样做,df[~df.well.str.contains('1')]因为这会删除具有正确位置的行,例如'A01'

同样,我可能正在做一些非常无知的事情,非常感谢您的帮助!

0 投票
2 回答
235 浏览

python - 带有或逻辑运算符的布尔索引numpy数组

我试图对orNumpy 数组进行布尔逻辑索引,但我找不到一个好方法。and operator &工作正常,如:

但是当我尝试:

我得到了错误:

是否存在使用 or 逻辑运算符的好方法?

0 投票
1 回答
95 浏览

python - Pandas 布尔索引中的星号 (*)

由于一个错字,我遇到了一些我不熟悉的 Pandas DataFrame 布尔索引语法,我找不到任何描述实际情况的信息。

我试图根据两个条件检索一个数据框,&但输入的是 a 但*我很惊讶地发现结果是相同的