擅长:python、mysql、java
<h2>编辑</h2>
<p>由于这种方法基本上是在数据样本和阈值之间执行外部积,因此它会显著增加所需的内存,这可能是不需要的。<a href="https://stackoverflow.com/a/51585510/3767239">An improved approach can be found here.</a>我仍然保留这个答案以备将来参考,因为它是在{a2}中引用的。在</p>
<p>我发现与OP代码相比,性能的提高是<code>~ 20</code>的一个因素。在</p>
<hr/>
<p>这是一个使用<code>numpy</code>的示例。数据和操作都是矢量化的。注意,结果dict包含空列表,而不是OP的示例,因此可能需要额外的清理步骤(如果合适)。在</p>
<pre><code>import numpy as np
# Data setup
data = np.random.uniform(size=(200000, 3))
thresh = np.random.uniform(size=1000)
# Compute tuples for thresholds.
condition = (
(data.min(axis=1)[:, None] < thresh)
& (data.max(axis=1)[:, None] > thresh)
)
result = {v: data[c].tolist() for c, v in zip(condition.T, thresh)}
</code></pre>