python中大于x且小于y的元素的表达式,全部在一个return语句中。没有循环。蟒蛇

时间:2012-10-31 23:34:56

标签: python numpy

返回数组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 ________?

只能使用此行。 在python中

3 个答案:

答案 0 :(得分:5)

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

import numpy as np

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

每次比较都返回一个布尔数组。表达式ANDs这两个数组元素并将结果相加。

答案 1 :(得分:3)

我对numpy一无所知,但在vanilla python中:

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

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

答案 2 :(得分:2)

列表理解是一种选择。

def F(A,x,y):
    return len([i for i in A if i > x and i < y])