前提・実現したいこと
pythonで配列操作を行っています。適当に昇順である配列xを用意し、ランダム値より大きくなったときの要素を抽出したいです。
配列 x = [2,4,6,8,10]
ランダム値 r = 3, 理想の出力:4
r = 4, 理想の出力:6
for文を使って、出力する方法とnp.whereを使って抽出しました。それぞれ同じ処理を10000回繰り返し、プロファイリングして計算時間を測定したところ
#1:22.152sec
#2:0.949sec
より速く抽出する方法を教えてください。
ソースコード
python
1import numpy as np 2import random 3for j in range(10000): 4 x = np.arange(0,1.1,0.0001) 5 r = random.random() 6 x1 = x-r 7#1 8 for i in x: 9 if r < i: 10 print(i) 11 break 12#2 13 a = np.where(x1>0) 14 print(x[a[0][0]]) 15
補足情報(FW/ツールのバージョンなど)
python3.6
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/15 15:55
2019/02/15 15:57