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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

Q&A

解決済

2回答

2542閲覧

TypeErrorの対処方法がわかりません

退会済みユーザー

退会済みユーザー

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

0グッド

0クリップ

投稿2021/09/17 07:06

編集2021/09/17 08:30

発生している問題・エラーメッセージ

TypeError Traceback (most recent call last) <ipython-input-7-648f10542202> in <module> 27 print("最初の5つの正解と予測値:") 28 for i in range(5): ---> 29 print("{:1.0f} {:5.3f}".format(test_y[i], y[i])) 30 print() 31 print("RMSE:", np.sqrt(((test_y - y)**2).mean())) TypeError: unsupported format string passed to numpy.ndarray.__format__

該当のソースコード

Python3

1import linearreg 2import numpy as np 3import csv 4 5#データ読み込み 6Xy = [] 7with open ("winequality-red.csv") as fp: 8 for row in csv.reader(fp, delimiter=";"): 9 Xy.append(row) 10Xy = np.array(Xy[1:], dtype=np.float64) 11 12#訓練用データをとってテスト用データに分割する 13np.random.seed(0) 14np.random.shuffle(Xy) 15train_X = Xy[ :-1000, : -1] 16train_y = Xy[ :-1000, : -1] 17test_X = Xy[ :-1000, : -1] 18test_y = Xy[ :-1000, : -1] 19 20#学習させる 21model = linearreg.LinearRegression() 22model.fit(train_X, train_y) 23 24#テスト用データにモデルを適用 25y = model.predict(test_X) 26 27print("最初の5つの正解と予測値:") 28for i in range(5): 29 print("{:1.0f} {:5.3f}".format(test_y[i], y[i])) 30print() 31print("RMSE:", np.sqrt(((test_y - y)**2).mean()))

linearreg.pyファイル

Python3

1import numpy as np 2from scipy import linalg 3 4class LinearRegression: 5 def __init__(self): 6 self.w_ = None 7 8 def fit(self, X, t): 9 Xtil = np.c_[np.ones(X.shape[0]), X] 10 A = np.dot(Xtil.T, Xtil) 11 b = np.dot(Xtil.T, t) 12 self.w_ = linalg.solve(A, b) 13 14 def predict(self, X): 15 if X.ndim == 1: 16 X = X.reshape(1, -1) 17 Xtil = np.c_[np.ones(X.shape[0]), X] 18 return np.dot(Xtil, self.w_)

###実行したい結果

最初の5つの正解と予測値:
7 6.012
6 5.734
5 5.285
8 6.352
5 5.414

RMSE:0.672424854847

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

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

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

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

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

bsdfan

2021/09/17 15:03

train_X, train_y, test_X, test_y が全部同じなのはコピペ違いではないですか?
退会済みユーザー

退会済みユーザー

2021/09/18 02:15

ご指摘の範囲を修正したところ正常に表示しました。 正式には test_y=Xy[-1000 : , -1] だったのですが, -1000 : は何を表しているのですか?
退会済みユーザー

退会済みユーザー

2021/09/18 02:49

ありがとうございます。
guest

回答2

0

ベストアンサー

入力ミスを指摘いただきました。

投稿2021/09/28 00:44

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

おそらくyが二次元ndarrayになっているでしょう。

python

1y = model.predict(test_X) 2print(y)

を実行してみてください。

そういう場合、

python

1>>> print(y) 2[[1.] 3 [2.] 4 [3.]] 5>>> print("{:5.3f}".format(y[0])) 6Traceback (most recent call last): 7 File "<stdin>", line 1, in <module> 8TypeError: unsupported format string passed to numpy.ndarray.__format__

というエラーメッセージが出ます。

投稿2021/09/17 07:36

ppaul

総合スコア24670

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

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

退会済みユーザー

退会済みユーザー

2021/09/17 08:35 編集

教本に沿って行った結果ですが、二次元ではなぜダメなのでしょうか? さらに、質問へ追加した結果になるにはどうすれば良いでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問