次のような機能があります。
def Function(x):
a = random.random()
b = random.random()
c = OtherFunctionThatReturnsAThreeColumnArray()
results = np.zeros((1,5))
results[0,0] = a
results[0,1] = b
results[0,2] = c[-1,0]
results[0,3] = c[-1,1]
results[0,4] = c[-1,2]
return results
私がやろうとしているのは、この関数を何度も実行し、返された 1 行、5 列の結果を実行中のデータ セットに追加することです。しかし、append 関数と for ループは、私が理解しているようにどちらも破滅的に非効率的であり、コードを改善しようとしていますが、実行回数が十分に大きくなるため、そのような非効率性は私には効果がありません。どんな好意でも。
オーバーヘッドを最小限に抑えるために、次のことを行う最善の方法は何ですか?
- 結果を保持するために新しい numpy 配列を作成します
- その関数の N 回の呼び出しの結果を 1 の配列に挿入しますか?