[過去ログ] くだすれPython(超初心者用) その37 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
280(2): 2018/04/12(木)01:08 ID:iaId0hiD(1/8) AAS
f = open("precictor_result.txt","a")
f.write(result," ",predict," ",data_test,"\n" )
f.close()
これだと、引数が多いとエラーが出る
,の代わりに+を使うと、数値として計算するようで、
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U21') dtype('<U21') dtype('<U21')
とエラーが出る
とりあえず、簡単に出力させて中身を確認したいがどのようするのがスマートだろうか?
282: 2018/04/12(木)01:27 ID:iaId0hiD(2/8) AAS
>>281
レスありがとうございます
変数全てに対して文字列に変換するのが面倒で・・・
例えば、
print(result," ",predict," ",data_test,)
であれば問題なく出力されますので
ファイルに保存する場合ももっとスマートにできる方法があれば助かります
285(1): 2018/04/12(木)02:29 ID:iaId0hiD(3/8) AAS
ありがとうございます。
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
でうまくいきました。ただ、大量の変数を出力する場合、
標準出力ではうまくいくわけですから、全て文字列にキャストするのはちょっと面倒と感じています。
例えば、
print(result," ",predict," ",data_test) #実際にはもっと多くの変数が並ぶ
こんな場合、これではエラーが出ますが、イメージとしては、
f.write( str((result," ",predict," ",data_test)) )
のような物でもあればもっと気軽にファイル出力できるような感じです
292(1): 2018/04/12(木)10:53 ID:iaId0hiD(4/8) AAS
>>291
Pythonを初めて2日目でデータ構造についても正直よく分かってないです
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn import cross_validation, metrics
from sklearn.externals import joblib
import warnings
warnings.filterwarnings("ignore")
mr = pd.read_table("test-data.txt",header=-1)
mr = mr[0:70]
clf = RandomForestClassifier()
clf = joblib.load('cars.pkl');
for row_index, row in mr.iterrows():
result = row.ix[0]
data_test = row.ix[1:]
predict = clf.predict(data_test)
f = open("test.txt","a")
print (result," ",predict," ",data_test )
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
# 標準出力を、ちょっとファイルに出力して中身を確認したいだけで全てキャスト(今は3つなので良いが10くらいになると面倒)するのは面倒なので上の行をもう少し簡素にしたい
f.close()
293(1): 2018/04/12(木)10:53 ID:iaId0hiD(5/8) AAS
>>289
標準出力にその機能があるなら、writeでも何とかならないでしょうかね?
>>286
str = [result, predict, data_test]
for i in str:
f.write(i)
残念ながら、
TypeError: write() argument must be str, not numpy.int64
という結果が表示されます
297(1): 2018/04/12(木)12:03 ID:iaId0hiD(6/8) AAS
>>294
出力されたデータをExcelでグラフにしたり検証したい時などとりあえずテキストデータにしたいのです
普段はperlを使っているのですがそれだとprintそのままにファイルハンドルを付けるだけで
標準でもテキストでも好きに出力できるので同じような使い方ができればと思っています
どちらも出力させて、画面で分かるものはそれでいいですし、
詳細な検討がしたい場合はファイルをExcelなどで開いて再検討する感じです
また、pythonやpandasに慣れて居らずその結果が不安で適宜Excelの結果と照合したいというのもあります
本当はperlでやりたいのですが機械学習について調べているとPythonのモジュールを使う物ばかりで・・・
>>296
生データそのままです
0 1 1 100 99 98 97 101
0 1 1 101 100 99 98 97
1 1 1 97 101 100 99 98
1 1 1 98 97 101 100 99
1 0 1 99 98 97 101 100
1 0 0 100 99 98 97 101
1 0 0 101 100 99 98 97
301(1): 2018/04/12(木)12:44 ID:iaId0hiD(7/8) AAS
>>298,300
おぉーその方法がありましたか
大昔DOSで使ったことがありますが完全に忘れていました!
>>299
とりあえずサンプルプログラムをそのままでpandasもpythonもまだ使いこなせていません
色々なtypeがある場合でも、さくっと出力してくれますか?
305: 2018/04/12(木)21:11 ID:iaId0hiD(8/8) AAS
>>303
貰ったアドバイスは一応理解できてると思う
ただ、以前perlを覚えた頃は掲示板をネットで調べたり、大量のサンプルプログラムを眺めたり
書き換えたりしながら完全に独学で覚えたから用語などがいまいち分からない
良い勉強方法があるなら知りたい
↓についても、その勉強方法ならアドバイスを聞くだけで分かりそう?
>>304
ありがとうございます
お手数おかけしましたが無事動作しました
fh.write()
としていて動作が失敗していました
コメントアウトしたら動作しました
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.030s