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

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

ただいまの
回答率

90.50%

  • Python 3.x

    6419questions

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

複数のファイルに対して,それぞれ変数の読み込みと書き込みをするための方法が分からず,困っています

解決済

回答 1

投稿 編集

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

目標:
メインファイル(main.py,コード省略)の「Xとscale_op」を,別ファイル(下記のdata_scaling.py)の「Xdとscale_option」に読み込んで,「data_scaling.py」で求めた「X_std」をメインファイルで使えるようにしたいと考えています.

現状:
メインファイルと別ファイルに書くべきコード(importを含む)を試していますが,エラーが出てしまい,うまくいきません.

エラーメッセージ:
ImportError: cannot import name など

[main.py] 該当部分
中略
X = Xdata
scale_op = 1
from data_scaling import Xd_std
X_std = data_scaling.Xd_std
中略

[data_scaling.py]
from main import X, scale_option
if scale_option == 1: # データの標準化
    from sklearn.preprocessing import StandardScaler
    sc = StandardScaler()
    sc.fit(Xd)
    Xd_std = sc.transform(Xd)
elif scale_option == 2: # データの正規化
    from sklearn.preprocessing import MinMaxScaler
    ms = MinMaxScaler()
    ms.fit(Xd)
    Xd_std = ms.transform(Xd)

初歩的なことと思いますが,この解決方法を教えていただけると助かります.
よろしくお願いします.

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • LouiS0616

    2018/04/26 17:46

    main.pyのインポート部と、data_scaling.pyの全文を差し支えない範囲で追記してください。

    キャンセル

回答 1

checkベストアンサー

0

相互インポートを見るに、data_scaling.pyに一部の処理を委託したいのかと思います。
その目的ならば、関数を適切に定義した方が良いでしょう。

main.py

import data_scaling

X_std = data_scaling.scale(Xdata, 1)

data_scaling.py

from sklearn.preprocessing import StandardScaler, MinMaxScaler

def scale(data, option):
    if option == 1:
        scaler = StandardScaler()
    elif option == 2:
        scaler = MinMaxScaler()
    else:
        raise ValueError

    scaler.fit(data)
    return scaler.transform(data)

かなり適当に書いたので、つまらないバグを仕込んでいるかもしれません。悪しからず。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/04/26 18:27

    無事に解決できました.ありがとうございました.

    キャンセル

  • 2018/04/26 18:30

    解決されたようで何よりです。
    Python3の入門書を通し読みしておくと良いかもしれません。

    キャンセル

  • 2018/04/26 19:00

    お奨めの書籍がございましたら,教えていただけますと幸いです.

    キャンセル

  • 2018/04/26 19:13

    Pythonを学んだのは一通りプログラミングに慣れてからだったもので、私自身は公式のPythonチュートリアル https://docs.python.jp/3/tutorial/index.html で入門しました。
    ただ、淡々とした内容なので、ちょっととっつきにくいかもしれません。

    書店でペラペラめくってみて、読みやすそうなものを選ぶと良いと思います。
    注意すべき点は次の三つです。
    ・ 情報が古くないかどうか。プログラミングの世界は流れが速いので、5,6年前の書籍の内容が化石化している恐れがあります。三年以内くらいを目安に選びましょう。
    ・ Python3に対応した内容かどうか。直前の条件を満たせば大丈夫かと思いますが、万が一にでも誤って2.7の入門書を買わないように気を付けるべきです。
    ・ Amazonなどのレビューが極端に少なくないか。また、評価が極端に低くないか。分かりやすさはひとそれぞれなので参考にしかなりませんが、悪評が大勢を占めるものはさすがに避けましょう。

    キャンセル

  • 2018/04/27 11:22

    大変参考になりました.ありがとうございます.

    キャンセル

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    scikit-learn(svm)のエラーについて

    質問内容 python、機械学習共に初学者です。 自分で適当なcsvファイルをデータセットとして作成し 下記のソースコードを実行したところ、下記のようなエラーが発生しました。

  • 解決済

    python エラー

    weights, params = [], [] for c in np.arange(-5, 5): lr = LogisticRegression(C=10**c,

  • 解決済

    テストデータの3割を使うようにしたい

    テストデータの3割を使うようにしたいです。 現在、犬の鳴き声と猫の鳴き声を分類するシステムを作っています。 # coding:utf-8 from sklearn import

  • 解決済

    Pyhon : k 近傍の混同行列

    前提・実現したいこと k 近傍法の実装の正解率の結果を元に混同行列を作成したいのですがどうすればいいのか。(kの大きさごとに混合行列を作成したいため) 該当のソースコード fr

  • 解決済

    Unity アニメーション 上手く移行しない

    using System.Collections; using System.Collections.Generic; using UnityEngine; public

  • 解決済

    Python 近似線と決定係数の求め方

     前提・実現したいこと Python初心者です. とあるグラフを対数正規分布の累積分布関数で回帰したいのですが,やり方が分かりません.(近似線と決定係数が知りたいです) 大変恐縮で

  • 解決済

    説明変数が複数のSVR(サポートベクター回帰)の実装

     やりたいこと 説明変数が複数あるSVRの実装  起きている問題 ウェブページを参考にやってみましたが、 計算結果が出てきませんでした。 結果が表示されない原因があれば

  • 解決済

    Internal Server Errorの解決方法が知りたい。

    初心者です。Python機械学習プログラミング[第2版]で勉強中です。 第9章 9.4.1で映画レビュー分類アプリケーションを作成しました。 ローカルサーバーで起動したらうまくいき

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

  • Python 3.x

    6419questions

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

  • トップ
  • Python 3.xに関する質問
  • 複数のファイルに対して,それぞれ変数の読み込みと書き込みをするための方法が分からず,困っています