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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

解決済

1回答

1633閲覧

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

kawauso_shiba

総合スコア18

Python 3.x

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

0グッド

1クリップ

投稿2018/04/26 08:42

編集2018/04/26 09:02

目標:
メインファイル(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)

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/04/26 08:46

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

回答1

0

ベストアンサー

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

main.py

Python

1import data_scaling 2 3X_std = data_scaling.scale(Xdata, 1)

data_scaling.py

Python

1from sklearn.preprocessing import StandardScaler, MinMaxScaler 2 3def scale(data, option): 4 if option == 1: 5 scaler = StandardScaler() 6 elif option == 2: 7 scaler = MinMaxScaler() 8 else: 9 raise ValueError 10 11 scaler.fit(data) 12 return scaler.transform(data)

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

投稿2018/04/26 09:15

編集2018/04/26 09:16
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kawauso_shiba

2018/04/26 09:27

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

2018/04/26 09:30

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

2018/04/26 10:00

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

2018/04/26 10:13

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

2018/04/27 02:22

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問