比较Numpy ndarrays的最快方法

时间:2016-12-14 02:52:14

标签: python python-3.x numpy

我已经在字典dictPrices中存储了4个ndarray,并希望为这两种情况中的每一种生成另一个布尔ndarray: (1)元素方面,如果4个ndarray中的任何一个中的数字超过x (2)元素方面,如果所有4个ndarray中的数字超过x

dictPrices[1] >= x有效,但当我尝试(dictPrices[1] >= x | dictPrices[2] >= x)时,它失败了。 (dictPrices[1] >= x or dictPrices[2] >= x)也失败了。

由于ndarrays可能很大(来自蒙特卡罗),我希望进行矢量化而不是循环遍历每个ndarray元素。

谢谢!

1 个答案:

答案 0 :(得分:2)

我想你想要这个:

np.logical_or.reduce([prices >= x for prices in dictPrices.values()])

这里有一些详细解释:Numpy `logical_or` for more than two arguments

当然,对于第二种情况,您可以使用logical_and代替logical_or