質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Python

    11317questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    9417questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pythonのimport、from文について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 103

kamikura

score 4

pythonでimportをしたいのですが、ファイル名を入力しても存在しないと返ってきてしまいます。
from import文でも試しましたが、同じく存在しないという結果でした。
ファイル内を見てみるとどうやらコンパイル自体が出来てない様子です(import出来てないから当たり前と言えばそうですが)

from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
import pycwt as wavelet
from pycwt.helpers import find


呼び出したいファイルとしては
Python36\Lib\site-packages\pycwt\pycwt\helpers
のfind関数と
Python36\Lib\site-packages\pycwt\pycwt\mothers
のMorlet関数になります。
余りに初歩的な問題かもしれませんが、宜しくお願いします。

質問がありましたので、ソースコード全体とエラー文を追記します。
ソースコードから

#ライブラリ読み込み
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
import pycwt as wavelet
from pycwt.helpers import find

#分析データ読み込み
url = "http://paos.colorado.edu/research/wavelets/wave_idl/nino3sst.txt"
dat = np.genfromtxt(url, skip_header=19)

#メタデータ設定
title = "xion t"
label = "xion sst"
unit = "deg"

t0 = 1871.0
dt = 0.25

#時間データ生成
N = dat.size
t = np.arange(0,N) * dt + t0

#分析対象データの整形
p = np.polyfit(t - t0, dat, 1)
dat_notrend = dat - np.polyval(p, t - t0)
std = dat_notrend.std()#標準偏差
var = std ** 2#分散
dat_norm = dat_notrend / std#正規化

#ウェーブレット変換のパラメタ設定
mother = mothers.Morlet(6)
s0 = 2 * dt
dj = 1 / 12
J = 7 / dj
alpha, _, _ = wavelet.ar1(dat)

#ウェーブレット変換と逆ウェーブレット変換
wave, scales, freqs, coi, fft, fftfreqs = wavelet.cwt(dat_norm, dt, dj, s0, J, mother)
iwave = wavelet.icwt(wave, scales, dt, dj, mother) * std

#ウェーブレットとフーリエの各スペクトル算出
power = (np.abs(wave)) ** 2
fft_power = np.abs(fft) ** 2
period = 1 / freqs

#規格化
power /= scales[:, None]

#パワースペクトル95%信頼区間での優位性検証
signif, fft_theor = wavelet.significance(1.0, dt, scales, 0, alpha, significance_lavel=0.95, wavelet=mother)
sig95 = np.ones([1, N]) * signif[:, None]
sig95 = power / sig95

#グローバルウェーブレットスペクトルとその優位性の算出
glbl_power = power.mean(axis=1)
dof = N - scales
glbl_signif, tmp = wavelet.signifcance(var, dt, scales, 1, alpha, significance_lavel=0.95, dof=dof, wavelet=mother)

#スケールの平均値とその優位性の算出
sel = find((period >=2) & (period < 8))
Cdelta = mother.cdelta
scale_avg = (scales * np.ones((N, 1))).transpose()
scale_avg = power / scale_avg
scale_avg = var * dj * dt / Cdelta * scale_avg[sel, :].sum(axis=0)
scale_avg_signif, tmp = wavelet.significance(var, dt, scales, 2, alpha, significance_lavel=0.95, dof=[scales[sel[0]],scales[sel[-1]]], wavelet=mother)

#ウェーブレット解析結果の可視化
plt.close("all")
plt.ioff()
figprops = dict(figsize=(11, 8), dpi=72)
fig = plt.figure(**figprops)

ax = plt.axes([0.1, 0.75, 0.65, 0.2])
ax.plot(t, iwave, "-", linewidth=1, color=[0.5, 0.5, 0.5])
ax.plot(t, dat, "k", linewidth=1.5)
ax.set_title("a) {}".format(title))
ax.set_ylabel(r"{} [{}]".format(lavel, units))

bx = plt.axes([0.1, 0.37, 0.65, 0.28], sharex=ax)
levels = [0.0625, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16]
bx.contourf(t, np.log2(period), np.log2(power), np.log2(levels), extend="both", cmap=plt.cm.viridis)
extent = [t.min(), t.max(), 0, max(period)]
bx.contour(t, np.log2(period), sig95, [-99, 1], colors="k", linewidths=2, extent=extent)
bx.fill(np.concatenate([t, t[-1:], +dt, t[-1:], + dt, t[:1] - dt, t[:1] - dt]),
        np.concatenate(np.log2(coi), [1e-9], np.log2(period[-1:]), np.log2(period[-1:]), [1e-9]), "k", alpha=0.3, hatch="x")
bx.set_title("b){}Wavelet Power Spectrum ({})".format(label, mother.name))
bx.set_ylabel("Period (years)")

Yticks = 2 ** np.arange(np.ceil(np.log2(period.min())), np.ciel(period.max()))
bx.set_yticks(np.log2(Yticks))
bx.set_yticklabels(Yticks)

cx = plt.axes([0.77, 0.37, 0.2, 0.28], sharey=bx)
cx.plot(glbl_signif, np.log2(period), "k--")
cx.plot(var * fft_theor, np.log2(period), "--", color="#ccccc")
cx.plot(var * fft_power, np.log2(1./fftfreqs), "-", color="#ccccc", linewidth=1.)
cx.plot(var * glbl_power, np.log2(period), "k-", linewidth=1.5)
cx.set_title("c) Global Wavelet Spectrum")
cx.set_xlabel(r"Power [({})^2]".format(units))
cx.set_xlim([0, glbl_power.max() +var])
cx.set_ylim(np.log2([period.min(), period.max()]))
cx.set_yticks(np.log2(Yticks))
cx.set_yticklabels(Yticks)
plt.setp(cx.get_yticklabels(), visible=False)

dx = plt.axes([0.1, 0.07, 0.65, 0.2], sharex=ax)
dx.axhline(scale_avg_signif, color="k", linestyle="--", linewidth=1.)
dx.plot(t, scale_avg, "k-", linewidth=1.5)
dx.set_title("d) {}--{} year scale-averaged power".format(2, 8))
dx.set_xlabel("Time (year)")
dx.set_ylabel(r"Average variance [{}]".format(units))
ax.set_xlim([t.min(), i.max()])

plt.show()


エラー文

Traceback (most recent call last):
  File "Z:\03作業用フォルダ\学生\テキスト読み込みできるwavelet変換\wavelet_power_spectle.py", line 6, in <module>
    from pycwt.helpers import find
ModuleNotFoundError: No module named 'pycwt.helpers'


以上です。よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • can110

    2018/12/29 10:54

    どこからどれをDLしましたか?

    キャンセル

  • kamikura

    2018/12/29 10:57

    https://github.com/regeirk/pycwt
    こちらのサイトの[複製またはダウンロード]からDLしています。

    キャンセル

  • can110

    2018/12/29 10:59

    回答しました。インストール作業が必要です。

    キャンセル

回答 1

checkベストアンサー

+1

Installationに従い、コードをダウンロードしpython setup.py installする必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/29 11:10

    そもそもインストールが出来ていなかったんですね…。
    ありがとうございました、試してみます。

    キャンセル

同じタグがついた質問を見る

  • Python

    11317questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    9417questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。