0
私は、特定の深度でのオーバーラップの割合を計算するこのコードを使用して、さまざまな深さで使用しようとしています。私はこのコードを実行しようとするとforループを使用して関数を自動化する
def score(list1, list2, depth):
len_list = len(list1)
frac = numpy.ceil(depth * len_list)
frac = int(frac)
s = slice(0,frac)
list1 = list1[s]
list2 = list2[s]
return len(set(list1)&set(list2))/float(len(set(list1) | set(list2)))
if __name__ == "__main__":
list1 = [2,4,6,8,10]
list2 = [1,2,3,4,5]
a = [numpy.arange(.01,1.01,.01)]
for i in a:
print(score(list1, list2, i))
しかし、私はエラーを取得しています:
frac = int(frac)
TypeError: only length-1 arrays can be converted to Python scalars
、0.01〔である(変数の深さは実際には変数のリストであることを意味し0.02どの..等])。
この関数は、リスト全体のように見えるのではなく、一度にパラメータ 'depth'の引数を1つだけ取ります。ケビンはコメントで言ったように
おかげ
私はnumpyについては何も分かりませんが、 'a = numpy.arange(.01,1.01、.01)'を実行した場合はどうなりますか?大括弧は不要です。 – Kevin
これをキャッチしてくれてありがとう – Labrat