问题标签 [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 投票
0 回答
17 浏览

python - 使用布尔索引分配和提取值而不丢失维度,以实现有效的多重插值和外插

我有 x 个样本和两组 y 个样本。我有一个数组 x 我想(1)当它的范围落在 x 样本的范围内时进行插值(2)当它大于 x 样本的最大值时外推(3)当它小于时填充零比 x 个样本的最小值。

现在,如果我只有一组 y 样本,我可以这样做

但是当我有两组 y 时,我不能这样做:

我会得到TypeError: NumPy boolean array indexing assignment requires a 0 or 1-dimensional input, input has 2 dimensions。因为当我使用interp_id从数组中提取值时,它返回一个一维数组并且不保留维度的信息。

我可以像这样修复它

但是这样我会计算很多我实际上不需要的插值和外插点。这是不可取的,因为我正在处理的实际数据集非常大,而且我没有使用简单的 1d polyfit。所以我想知道是否有更有效的方法来做到这一点,这样我就可以(1)利用良好的矢量化和(2)不计算我不会使用的数据点(所以像这样的方法np.select不会有帮助)

0 投票
1 回答
34 浏览

python - pandas DataFrames 中布尔索引器的高效链接

我正在尝试非常有效地链接可变数量的布尔熊猫系列,以通过布尔索引用作 DataFrame 上的过滤器。

通常在处理多个布尔条件时,像这样链接它们

但这会成为各种条件的问题。

我已经尝试了一些可能的解决方案,但我相信它可以更有效地完成。

选项 1
循环遍历索引器并连续应用。

选项 2
放入 DataFrame 并计算行积。

选项 3
使用numpy.product就像在这个答案中一样)并从结果中创建一个新的系列。

所有三种解决方案都有些低效,因为它们依赖于循环或强制您创建一个新对象(如果重复多次,这可能会很慢)。

它可以更有效地完成还是这样?