私は10000-1000000回計算して値を反復し、その出力の一部をリストに追加するグラフ作成プログラムを作成しています。どのリストに追加するかを変更するには、そのループ内に〜3個のif文があります。最初にif文を使用する方が論理的に高速ですが、かなりの時間が節約できますか?一例として、if文がPythonでかなりの時間がかかりますか?
:
output = []
append_to = "pol"
for i in range(10000):
if append_to == "pol":
output.append(np.cos(i))
else:
output.append(np.sin(i))
これはよりも大幅に遅くなるだろう:
output = []
append_to = "pol"
if append_to == "pol":
for i in range(10000):
output.append(np.cos(i))
else:
for i in range(10000):
output.append(np.sin(i))
「append_to」の値が変わる可能性があると仮定すると、どちらが速いかにかかわらず、完全に同等ではないことに注意してください。 – DeepSpace
ループ全体で 'append_to'は同じ状態を維持しますか?この場合、append_to == "pol" else np.sin'を定義し、次に 'output = list(map(f、range(10000))'を実行すると、f = np.cosを定義できます。 –
はい、append_toは同じですなぜ、これが問題を無効にするのですか?私は最適化について尋ねています。ありがとう、私はマップ関数を調べる必要があります。 –