-5

Ax より大きく y より小さい配列内の項目の数を返します。Aは 1 次元 float 配列で、x と y は float です。たとえば、F6(np.array([1.1, 2.2, 3.3, 2.3]), 2, 3)を返す必要があり2ます。

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

この行のみ使用できます。パイソンで

4

3 に答える 3

5

ベクトル化された操作としてこれを行う 1 つの方法を次に示します。

import numpy as np

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

各比較はブール配列を返します。この式は、これら 2 つの配列を要素ごとに 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であるため、合計することでブール配列内の の数を数えることができるという事実を利用しています。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 に答える