-5

返回数组A中大于 x 且小于 y 的项目数。A是一维浮点数组,x 和 y 是浮点数。例如F6(np.array([1.1, 2.2, 3.3, 2.3]), 2, 3)应该返回2

def F(A,x,y):
     return ________?

只能使用这条线。在蟒蛇

4

3 回答 3

5

这是一种将其作为矢量化操作的方法:

import numpy as np

def F(A, x, y):
    return np.sum((A > x) & (A < y))

每个比较都返回一个布尔数组。表达式按元素对这两个数组进行 AND 运算并将结果相加。

于 2012-10-31T23:55:24.990 回答
4

我对numpy一无所知,但是在香草python中:

def F(A, x, y):
    return sum(x < v < y for v in A)

True这使用了这样一个事实,即您可以通过求和来计算布尔数组中 s 的数量,因为int(True) == 1int(False) == 0

于 2012-10-31T23:38:09.350 回答
2

列表理解是一种选择。

def F(A,x,y):
    return len([i for i in A if i > x and i < y])
于 2012-10-31T23:39:52.727 回答