问题标签 [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.
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
不会有帮助)
python - pandas DataFrames 中布尔索引器的高效链接
我正在尝试非常有效地链接可变数量的布尔熊猫系列,以通过布尔索引用作 DataFrame 上的过滤器。
通常在处理多个布尔条件时,像这样链接它们
但这会成为各种条件的问题。
我已经尝试了一些可能的解决方案,但我相信它可以更有效地完成。
选项 1
循环遍历索引器并连续应用。
选项 2
放入 DataFrame 并计算行积。
选项 3
使用numpy.product
(就像在这个答案中一样)并从结果中创建一个新的系列。
所有三种解决方案都有些低效,因为它们依赖于循环或强制您创建一个新对象(如果重复多次,这可能会很慢)。
它可以更有效地完成还是这样?