このスレッドから、リスト内包からタプルへの複数の戻り値をアンパックする方法がわかります。numpy配列への複数の戻り関数のためのpythonリストの理解
def f(x):
return 2*x, x*x
x = range(1, 4)
xlist, ylist = zip(*[f(value) for value in x])
これをnumpy配列に直接行う方法はありますか?またはこれを使用する唯一の解決策は次のとおりです。
xlist = np.asarray(xlist)
?
最初のソリューションはなぜ2倍の速さですか? – Peterhack
@Peterhackちょうど確かに、私が提案した他のソリューションよりも速いのですか?おそらくそれは中間リストを作成しないため、出力配列は 'count'引数を使用して事前に割り当てられ、ジェネレータからの値を使用して直接入力されます(最初の解決策にはリスト理解は含まれません。ジェネレータ式)。 – lukas