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

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

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

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

解決済

2回答

27442閲覧

rangeを0.1から10まで指定する方法

renren643

総合スコア279

Python 3.x

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

1グッド

1クリップ

投稿2017/11/12 13:19

縦軸にAccuracy、横軸palphaというグラフを描きたく、
下記のようなコードを実行したいのですが、alpha_settings = range(0.1, 10.0)で詰まっており、
'float' object cannot be interpreted as an integerのエラーが表示されてしまいます。
少数と整数の扱いかた問題だと思いますが、
rangeで0.1から10まで表示したいときはどのように指定すれば良いのでしょうか?

X, y = mglearn.datasets.load_extended_boston() X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) training_accuracy = [] test_accuracy = [] # try n_neighbors from 1 to 10 alpha_settings = range(0.1, 10.0) for alpha in alpha_settings: ridge = Ridge(alpha=alpha).fit(X_train, y_train) training_accuracy.append(ridge.score(X_train, y_train)) # record generalization accuracy test_accuracy.append(ridge.score(X_test, y_test)) plt.plot(alpha_settings, training_accuracy, label="training accuracy") plt.plot(alpha_settings, test_accuracy, label="test accuracy") plt.ylabel("Accuracy") plt.xlabel("alpha") plt.legend()
shimitei👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

0.1 から 10までを0.1間隔で取得するならば以下のコードで達成できると思います。

[追記]LouiS0616様のコメントより
より簡単に書けることがわかったので追記しました。

python

1import numpy as np 2x = np.arange(0.1, 10.1, 0.1) 3""" 4array([ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 5 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 6 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 7 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 8 3.7, 3.8, 3.9, 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 9 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 10 5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 11 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2, 12 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8. , 8.1, 13 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9. , 14 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10. ]) 15 16"""

python

1import numpy as np 2 3def frange(x, y, jump): 4 while x < y: 5 yield x 6 x += jump 7 8# 第三引数を変更すれば間隔を変えることができます 9x = list(frange(0.1, 10, 0.1)) 10np_x = np.round(a, 1) 11 12""" 13array([ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 14 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 15 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 16 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 17 3.7, 3.8, 3.9, 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 18 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 19 5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 20 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2, 21 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8. , 8.1, 22 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9. , 23 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10. ]) 24 25"""

range() for floats

投稿2017/11/12 13:32

編集2017/11/12 14:10
wakame

総合スコア1170

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

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

LouiS0616

2017/11/12 13:42

組み込み関数のroundではなくnumpy.roundを使うのには何か理由があるのでしょうか?
renren643

2017/11/12 13:47

迅速な回答ありがとうございます。
wakame

2017/11/12 13:50 編集

内包表記で [round(i, 1) for i in x] こう書くよりかはいいかなと思いました。
LouiS0616

2017/11/12 14:02

よく考えたら、numpyありなら一発ですね。 np.arange(0.1, 10, 0.1) 組み込みのみで遅延評価を活かすなら、こんな感じにも書けそうです。 map(lambda x: round(x, 1), frange(0.1, 10, 0.1))
wakame

2017/11/12 14:04

確かに言われてみれば・・・全然気づかなかった。
wakame

2017/11/12 14:11

コメントを受けて回答を修正しました。
renren643

2017/11/12 15:08

お二人とも回答 ありがとうございました。numpyを使っていることを明記しておくべきでした。
guest

0

小手先のテクならこんな感じで出来ます。

Python

1>>> list(map(lambda x: x/10, range(1, 100))) 2[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9.0, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9]

あるいは内包表記を使うか。

Python

1>>> [i / 10 for i in range(1, 100)] 2[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9.0, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9]

こちらではnumpyを使う方法も紹介されていますね。
Stackoverflow - range() for floats

投稿2017/11/12 13:27

編集2017/11/12 13:33
LouiS0616

総合スコア35660

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問