前提・実現したいこと
ボックスカウンティング法のプログラムを自作で作成したのですが、あまりにも処理が遅いため改善したいと考えております。
プログラムは二次元のグラフに対しての処理で、100データを50データずらしながらボックスカウンティング法を用いることを検討しています。現状総データ3000に対して3388秒かかってしまいます。
該当のソースコード
df:データ[x値、y値]
x: xの値における最大値
y: yの絶対値における最大値
b: ボックスの大きさ
def count(df, x, y, b): i = 0 j = 0 c = 0 x = math.ceil(x/b) * b y = math.ceil(y/b) * b flag1 = False flag2 = False while i <= x and j <= y: flag1 = False flag2 = False if i + b <= x and j + b <= y: for m, n in df: if (i <= abs(m) < i+b) and (j <= abs(n) < j+b): if (np.sign(n) == 1) and (flag1 == 0): c += 1 flag1 = True elif (np.sign(n) == -1) and (flag2 == 0): c += 1 flag2 = True if (flag1 == 1) and (flag2 == 1): break i += b if i >= x: i = 0 j += b return c
試したこと
higich法やマルチフラクタル解析について調べてみたのですがよく理解できませんでした。
回答1件
あなたの回答
tips
プレビュー