[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/13 01:58 / Filesize : 261 KB / Number-of Response : 1026
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その37



1 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 16:32:25.91 ID:S1lkLDnv.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その36
mevius.2ch.net/test/read.cgi/tech/1514805522/

220 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 22:15:55.69 ID:u6SiCNsb.net]
>>210
仕事でソフト開発している人が、初心者のために分かりやすいコーディングをしているとは思えないよな。

221 名前:188 mailto:sage [2018/04/07(土) 22:55:32.20 ID:UAWtR4Cc.net]
>>195
あっ、レス付いてる
ありがとうございます
注文することにしました
読んでみたらレビューしますね

222 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 00:14:01.39 ID:j+FIppRr.net]
>>202
このスレのレベルを超えた質問で場違いな感じの質問だな

223 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 01:12:18.12 ID:s6V+xdvY.net]
>>215
逆だよ。仕事でソフト開発している人が、難読コードを書いちゃいかんだろ。

224 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 01:18:01.50 ID:kOs0IpX+.net]
>>218
例えば、リスト内包表記は慣れたらめちゃくちゃわかりやすいんだけど、初心者には不評
でも慣れてる人にはわかりやすいから内包表記を使いまくるってことだろう

225 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 01:33:34.80 ID:ikNNlzZg.net]
>>212
>>207よりこっちのほうが分かりやすいと?そうかなぁ?
昔ながらのfor文に慣れてるからそう思うだけで、初心者に聞いてみたらむしろ逆なんじゃない?知らんけど
何より識別子が増えて名付けが辛い。
const mat = `
1 2 3
4 5 6
7 8 9
`.trim();
for (const row of mat.split`\n`) {
const rowAry = row.split` `;
let rowSum = 0;
for (const cel of rowAry) {
rowSum += Number(cel);
}
console.log(rowSum);
}

226 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 02:22:57.13 ID:jNVGKdq/.net]
joinは文字列の連結がウリなのに、引数を一個しか指定できないのが謎過ぎる
",".join("A","B","C")ってやりたい時に、実際はあらかじめ"A","B","C"をリストに入れるか
+で連結しとかんといかんって本末転倒だろ

227 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 02:36:06.55 ID:6R1G24Uu.net]
>>221
[ ]で囲むだけだろ
Pythonでは可変長引数はあまり好まれない

228 名前:デフォルトの名無しさん [2018/04/08(日) 06:58:14.21 ID:gxaJAEYd.net]
>>210
ここ超初心者のスレ。



229 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 10:08:27.26 ID:kOs0IpX+.net]
>>223
いや、>>210>>209への返答よ?

230 名前:デフォルトの名無しさん [2018/04/08(日) 11:41:56.18 ID:YK+KPtHu.net]
>>209
初心者はどっちから教えても一緒だと思う

231 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 11:55:02.04 ID:9/UswNDz.net]
>>225
俺も大差ないと思う
forでダラダラ書くより、map,reduce,filterで簡素に書けるなら使ったほうがいいからな

232 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 16:29:56.48 ID:MFf7xIr6.net]
こんにちは
タイムカードを処理するアプリを作りたいと思っていて、月の勤務記録を一括で読み込んで実労働時間を出そうと思ってます。
1行毎(1日毎)に実労働時間を出して最後にそれを全て足そうと思っているのですが、行ごとの処理の仕方がわからないんです…
ご回答よろしくお願いします。

233 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 16:43:00.39 ID:GoOLzpCW.net]
一行分の入力データと
一行分の入力データから得たい出力データを記載しろ

234 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 16:48:16.19 ID:MFf7xIr6.net]
1行分の入力 2017/03/01 12:00-15:00 16:00-24:00

出力 11

こんな感じです
そもそもsys.stdin.readlines()で処理するのが正しいんですかね

235 名前:デフォルトの名無しさん [2018/04/08(日) 16:59:45.98 ID:nkM5b3tX.net]
pandas.read_from_hogehoge

236 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 17:46:41.40 ID:6sp2I/Ld.net]
>>> import datetime
>>> import pandas
>>> from io import StringIO
>>> mindif = lambda s: (lambda x: td(x[1])-td(x[0]))(s.split('-'))
>>> td = lambda s: (lambda x: datetime.timedelta(hours=x[0], minutes=x[1]))(list(map(int, s.split(':'))))
>>> f = StringIO('''\
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
2017/03/01 12:00-15:00 16:00-24:00
''')
>>> a = pandas.read_table(f, header=None, sep=' ')
>>> a[3] = a[1].map(mindif)
>>> a[4] = a[2].map(mindif)
>>> a
0 1 2 3 4
0 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
1 2

237 名前:017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
2 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
3 2017/03/01 12:00-15:00 16:00-24:00 03:00:00 08:00:00
[]
[ここ壊れてます]

238 名前:デフォルトの名無しさん [2018/04/08(日) 17:50:59.38 ID:6sp2I/Ld.net]
>>> a[3] = a[1].map(mindif)
>>> a[4] = a[2].map(mindif)
この2行は
>>> a[3] = a[1].map(mindif) + a[2].map(mindif)
だけで良かった 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)




239 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 18:54:45.02 ID:1mmlbc0v.net]
Ruby だと、時刻に、24時は無いけど。
23まで

午前中は、どう表記してる?
03:05, 3:05 のどっち?

240 名前:遊園地 mailto:age [2018/04/08(日) 20:12:56.50 ID:gmVtfD5c.net]
>>229
ごめん。仕様ミスで行数が増えたら対処できない。
そこは改変してくれ。

https://ideone.com/1izELX

241 名前:遊園地 mailto:sage [2018/04/08(日) 20:22:54.67 ID:gmVtfD5c.net]
なんか、知らんけど腕が落ちてる。

242 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 20:26:08.17 ID:3hKhfzCU.net]
拾っとけ拾っとけ1割もらえるかもよ

243 名前:遊園地 mailto:sage [2018/04/08(日) 20:30:56.58 ID:gmVtfD5c.net]
そっちじゃねえよww

244 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 21:23:41.29 ID:MFf7xIr6.net]
>>233
午前中は5:00まで29:00の仕様です

245 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 21:24:04.77 ID:MFf7xIr6.net]
助かります。参考に書いてみます

246 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 21:46:24.45 ID:5trngRbI.net]
>>238
5時がタイムカード上では29時なんか
夜23時から早朝の5時勤務の場合
タイムカードは23:00-29:00
夜23時から早朝の6:00時勤務の場合
タイムカードは23:00-06:00
夜1時から早朝の5時勤務の場合
タイムカードは25:00-29:00
とかになるのか

247 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 22:02:44.17 ID:MFf7xIr6.net]
>>240
そうです
なのであり得ませんがフル勤務の場合は5:00-29:00になりますね

248 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 22:54:58.64 ID:eu3b+r+J.net]
>>238
それって残業代どうなるの?深夜勤務、8時間超えたら、〇時間超えたら何割増しってあるんでしょ?



249 名前:遊園地 mailto:sage [2018/04/08(日) 23:52:48.14 ID:gmVtfD5c.net]
規模によるがw
数百万から数千万の未払金が発生するなww

ただの問題サイトのテストケースだろうけどなw

250 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 04:01:32.98 ID:WaD3v69G.net]
>>242
そこからは自力で書いてみようと思ってます

251 名前:デフォルトの名無しさん [2018/04/09(月) 10:27:28.30 ID:l0CeQllx.net]
>>229
医師とかだとこういう勤務形態になるのかな

252 名前:遊園地 mailto:sage [2018/04/09(月) 10:40:52.05 ID:Ptdpw/63.net]
朝4時に起きとか、怖過ぎ。

253 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 10:59:02.77 ID:s1r7cemC.net]
月200時間以上ざんぎょーしてた頃がなつかしーわー
3れんきん(中日は24時間勤務)とかふつうにあった

書類上は
5分仕事 15分休憩
の繰り返しになってた

254 名前:遊園地 mailto:sage [2018/04/09(月) 14:05:06.99 ID:Ptdpw/63.net]
仕様が決定して有るなら、作業みたいなモノだろうに。
そんなに仕事を抱え込めるのかな?

管理も兼任してたら、オーバーフローでオーバーロードですな。ww

255 名前:デフォルトの名無しさん [2018/04/09(月) 14:23:31.09 ID:GdkyYm9A.net]
rubyスレにマルチするのやめれ

256 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 15:40:06.66 ID:WaD3v69G.net]
>>234
これ曜日って出せますか?

257 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 16:03:42.19 ID:M/BmQ9Z1.net]
Ruby スレに書き込んだのは、python スレの書き込みとは別人。
ID も異なるはず

python スレの書き込みを見て、
Ruby ではどうプログラミングするべきか、考えてみたが難しかった

258 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 20:54:36.31 ID:dNOi8uH1.net]
pythonで書けてrubyで難しいなんてことがあるのか。
ちょっと意外



259 名前:遊園地 mailto:age [2018/04/09(月) 21:07:06.94 ID:Ptdpw/63.net]
>>250
出せるけど、書式変更が あーーー
https://ideone.com/aCw7iG

調べても2,3分で実装まで5分掛からないんだから、頑張ろうな。

実質、2行増えただけだしな。

260 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 21:37:50.56 ID:0kSx2Pnj.net]
>調べても2,3分で実装まで5分掛からないんだから、頑張ろうな。
"超"初心者=>調べることができない、調べようとしない、頑張ることができない人
超初心者に不可能なことを要求するなよ。初心者ならこれらのことは出来るんだが

261 名前:遊園地 mailto:age [2018/04/09(月) 22:13:27.53 ID:Ptdpw/63.net]
>>255

>>244 で
自分で書いてみます。って書いてるやん

262 名前:遊園地 mailto:sage [2018/04/09(月) 22:26:44.43 ID:Ptdpw/63.net]
とは言え。偉そうにしたのはスマンかった。

>>250
ごめん。ちょっと調子に乗ってた。
失礼しました。

263 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 00:18:50.47 ID:RB2jjZ4g.net]
>>255
いえいえとんでもないです
本当にありがとうございます!調べても分からなかったところだったので…

264 名前:遊園地 [2018/04/10(火) 09:44:44.25 ID:QiXBaC3n.net]
検索の仕方は

言語 項目

python 日付

python 曜日

とかで、hitする。と思う。

265 名前:遊園地 mailto:sage [2018/04/10(火) 09:48:10.16 ID:QiXBaC3n.net]
素直に行くなら、
公式Documentを落として、

英語で、ファイル内検索

かな。

266 名前:遊園地 mailto:sage [2018/04/10(火) 11:25:34.63 ID:QiXBaC3n.net]
https://ideone.com/lDwos1

267 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 20:30:36.44 ID:CXD6eMLO.net]
for index, row in mr.iterrows():
a = row.ix[0]
a.replace(u"月","a")
月をaに置換したいんだけどうまくいかない・・・どうすればいい?

268 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 21:31:07.93 ID:6CkCb20Q.net]
'nichi月🔥水moku金do'.replace(/月/gu, 'a');



269 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 22:15:50.26 ID:tEeQ8k7E.net]
>261
panda は使ったことないのでよくわからないけれど、

str.replace(s, t) について言うと
文字列はイミューダブルだから、replaceでstrが書き換わるわけではない。
書き換わった値が返ってくるので、それを変数に代入することが必要。
つまり、a = a.replace(s, t) のようにする。
さらに、aに再代入しても、
iter.ix[0]の中身は変わらない。
なので、
iter.ix[0]=iter.ix[0].replace(s, t)
のようにする必要があるのだと思う。
外してたらゴメン

270 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 22:22:55.45 ID:CXD6eMLO.net]
>>263
まさに知りたかった答えです助かりました!

>>262
セミコロンが付いてるし、他の言語かな?

271 名前:デフォルトの名無しさん [2018/04/11(水) 00:45:52.55 ID:5V3NvSPI.net]
rrrubyyy

272 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 08:15:34.43 ID:vlh3mMKJ.net]
Githubで公開されていたライブラリ?モジュール?を利用したプログラムを書いているのですが、
このライブラリの関数の中に、WebからJson形式で値を取得するものがあります。
これを実行するとコンソールにズラーっと結果がPrintされるのですが、
このPrintを無効にしてコンソール上に出力しないようにする事は出来るでしょうか?

デバッグ用のPrint等が流れて読めなくなってしまい、邪魔なので出さないようにしたいです。
よろしくお願い致します。

273 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 09:01:53.43 ID:qa2FEnRq.net]
ライブラリなら普通はlogging使ってるはずだから設定で消せる
もし直接printしてるようならそんなものは今すぐ投げ捨てて他を探せ
そんな低品質なゴミを使ってると後々取り返しのつかないトラブルの原因になりかねない

274 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 09:35:50.44 ID:cUARpOdH.net]
>>266
頭が良い奴なら、ソース弄らないで動的に関数内のprint部分だけコメントになるようにするとかできるんだろうが(デコレータのような使い方で)。
でも、そんな奴は5chのpythonスレにはいないだろう

275 名前:遊園地 mailto:sage [2018/04/11(水) 10:02:21.51 ID:y+NDlg77.net]
無効にする割合は、40ぐらいに設定して置いた方が無難

276 名前:遊園地 mailto:sage [2018/04/11(水) 10:13:12.84 ID:y+NDlg77.net]
優秀な奴が、労力をかける場所を間違わないと思うけどな。
ほんの1つのライブラリなんだから、他を探すのが正解だと思うぞい!ww

277 名前:デフォルトの名無しさん [2018/04/11(水) 12:37:06.54 ID:bG1z7LTF.net]
マジレスするとstdoutのトラップで桶

278 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 14:41:24.70 ID:nGNQyhwo.net]
意地悪な憶測だがライセンスも読んでないに違いない



279 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 23:09:57.05 ID:QNR3RY4l.net]
まじめにライセンスを読むのはいかがわしい事を考えてる奴だけ説

280 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 23:13:13.16 ID:DormuVYu.net]
ぐう正論

281 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 23:54:01.75 ID:VAa2HaB9.net]
@GPS取得

Aネットにあるjsonを取得

BGPS内容・json内容を0.5秒おきに出力

↑の処理をするプログラムを組んでいます。
@はすぐ処理が終わるので問題ありませんが、Aは使用環境が外でモバイル通信を使用しているためかAの処理だけで最大5秒かかることがあってBの処理が大幅に遅れてしまいます。
Aのみ裏で処理して、@とBをループさせたいのですが、いい方法ありますでしょうか?

282 名前:275 mailto:sage [2018/04/12(木) 00:05:44.68 ID:qBx4xR6B.net]
先ほどの書き方だとjsonを0.5秒以内に取得するということになってしまうので修正します。

@GPS取得(0.5秒ごとに処理)

Aネットにあるjsonを取得(10秒ごとに処理)

BGPS内容・json内容を出力(0.5秒ごとに処理)

10秒に1回以外は@とBのループなので問題ありませんが、↑の処理だと10秒に1回はAを処理するときに時間がかかってしまってBの処理が0.5秒で処理できなくなってしまうのが問題です。

283 名前:デフォルトの名無しさん [2018/04/12(木) 00:15:41.74 ID:4IaDzy3O.net]
2を実行するために1の結果が要らないならご自由に

284 名前:275 mailto:sage [2018/04/12(木) 00:53:20.19 ID:qBx4xR6B.net]
スレッドという処理があったのでこれを使えばいけそうでした
自己解決すみません。

285 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 00:58:33.43 ID:3KpeTxH4.net]
俺ならGPSロギングとJSON取得はそれぞれ全く別個に作って別プロセスで動かすわ
結果はタイムスタンプを使って後で結合すればいい

286 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 01:08:15.09 ID:iaId0hiD.net]
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')
とエラーが出る

とりあえず、簡単に出力させて中身を確認したいがどのようするのがスマートだろうか?

287 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 01:20:58.84 ID:ViqCrKfL.net]
変数が何なのかは知らんが
>数値として計算する
なら文字列に変換すれば良いだろ

288 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 01:27:04.11 ID:iaId0hiD.net]
>>281
レスありがとうございます
変数全てに対して文字列に変換するのが面倒で・・・
例えば、
print(result," ",predict," ",data_test,)
であれば問題なく出力されますので
ファイルに保存する場合ももっとスマートにできる方法があれば助かります



289 名前:遊園地 mailto:sage [2018/04/12(木) 01:37:46.68 ID:tAnO53/m.net]
これで、良いのかな?

f = open('text.txt', 'r')
for i in f:
print (str(i))
f.close()

290 名前:遊園地 mailto:age [2018/04/12(木) 01:39:14.90 ID:tAnO53/m.net]
見たら分かると思うけど、
f.write( str(i) )

と言う構想

291 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 02:29:34.74 ID:iaId0hiD.net]
ありがとうございます。
f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )
でうまくいきました。ただ、大量の変数を出力する場合、
標準出力ではうまくいくわけですから、全て文字列にキャストするのはちょっと面倒と感じています。
例えば、
print(result," ",predict," ",data_test)  #実際にはもっと多くの変数が並ぶ
こんな場合、これではエラーが出ますが、イメージとしては、
f.write( str((result," ",predict," ",data_test)) )
のような物でもあればもっと気軽にファイル出力できるような感じです

292 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 03:01:07.44 ID:M9kW+xEA.net]
str = [result, predict, data_test]
for i in str
f.write()

これで動くっけ?

293 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 04:00:58.45 ID:T93bDVFD.net]
>>275-279
スレッドは、同一プロセスだろ。
こういうのは、別のプロセスでよくある

数秒毎に書き込むプロセスAと、1秒毎に読み込むプロセスBがある

B は、ファイルをスタンプを見て、
新たに書き込まれた情報が無ければ、. を出力して、
新情報があれば、o を出力するみたいなやつ

制御・組み込み系で多い

...o....o...o.....o....o..

294 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 04:10:10.14 ID:T93bDVFD.net]
name = 'John'
age = 20 + 3

print "名前は #{name}、年齢は #{age}歳"

Ruby では、テンプレート文字列って言うのかな?
文字列の中で、式を展開できる。
最終的に、変数が文字列型に変換される

Python には、こういう機能が無いのか?

295 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 04:49:22.42 ID:t3ixnFe0.net]
>>280
printは引数を強制的に文字列に変換するうえに
キーワードオプションで出力先を変更できるから
以下で通るはず。空白も改行も勝手に入る
詳しくはドキュメントの「Python標準ライブラリ-組み込み関数」を参照

print(result, predict, data_test, file=f)

296 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 06:25:29.02 ID:t3ixnFe0.net]
>>288
文字列中での式展開はPython3.6から実装された
3.6以前ではこの機能がなく、%記法やstr.formatメソッドを使う

%記法
print("名前は %s、年齢は %d" % (name, age))

str.formatメソッド
print("名前は {}、年齢は {}".format(name, age))

フォーマット済み文字列リテラル
print(f"名前は {name}、年齢は {age}")

297 名前:遊園地 mailto:age [2018/04/12(木) 09:27:33.72 ID:tAnO53/m.net]
>>285
データ構造が不明だから、何とも言えない。

何処かで、
 書き込むべき内容を1つのリストに纏めたり
できない?

298 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 10:53:13.19 ID:iaId0hiD.net]
>>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()



299 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 10:53:50.49 ID:iaId0hiD.net]
>>289
標準出力にその機能があるなら、writeでも何とかならないでしょうかね?

>>286
str = [result, predict, data_test]
for i in str:
f.write(i)
残念ながら、
TypeError: write() argument must be str, not numpy.int64
という結果が

300 名前:\示されます []
[ここ壊れてます]

301 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 11:12:19.94 ID:t3ixnFe0.net]
>>293
これはprint関数の機能だからwriteでは使えないよ
こう変えるだけなんだけど、どうしてもwriteじゃなきゃいけないの?

f.write( str(result) + " " + str(predict) + " " + str(data_test) + "\n" )

print(result, predict, data_test, file=f)

302 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 11:18:36.95 ID:JyHXEe/D.net]
resultとかの各変数の中身が文字列じゃない気がする

303 名前:遊園地 mailto:sage [2018/04/12(木) 11:38:42.18 ID:tAnO53/m.net]
pandasは触った事ないから、協力できない。

差支えが無ければ、test-data.txtの中身(記述形式)を教えてくれ。

でたらめな数値や造語で良い。そうしたら、何か分かるかも。

304 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 12:03:51.11 ID:iaId0hiD.net]
>>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

305 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 12:10:53.36 ID:CLTBB0jT.net]
画面に出力する(普通にprintする)プログラムを作って、
ファイルに保存したい場合には
foo.py > filename
という風に実行する、
というやり方はご存知ですか?

306 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 12:16:50.63 ID:rOwLVxdy.net]
てかパンダ使ってるならそっちで出力すれば?

307 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 12:40:44.41 ID:T93bDVFD.net]
in/out を、標準入出力にしておけば、パイプでファイルにつなげられる

スクリプトファイル < 入力ファイル > 出力ファイル

308 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 12:44:49.97 ID:iaId0hiD.net]
>>298,300
おぉーその方法がありましたか
大昔DOSで使ったことがありますが完全に忘れていました!

>>299
とりあえずサンプルプログラムをそのままでpandasもpythonもまだ使いこなせていません
色々なtypeがある場合でも、さくっと出力してくれますか?



309 名前:遊園地 mailto:sage [2018/04/12(木) 12:53:53.14 ID:tAnO53/m.net]
聞けば聴くほど分からなくなってくる。

取りあえず出力したいなら、
>>290

310 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 13:02:34.85 ID:O7jP9sqH.net]
>>301
Pythonを初めて2日目じゃ何もわからないだろう
ここの連中が言っているアドバイスすら理解不能だろ
一通りさっとでもPython学習をやってから>>292のようなコードに臨んだほうが良い

311 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 17:20:28.88 ID:t3ixnFe0.net]
>>297
print(result, predict, data_test)  # 標準出力に出力
print(result, predict, data_test, file=f) # ファイルハンドル f のファイルに出力

これが理解できないならもうワシは知らん

312 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 21:11:22.45 ID:iaId0hiD.net]
>>303
貰ったアドバイスは一応理解できてると思う
ただ、以前perlを覚えた頃は掲示板をネットで調べたり、大量のサンプルプログラムを眺めたり
書き換えたりしながら完全に独学で覚えたから用語などがいまいち分からない
良い勉強方法があるなら知りたい
↓についても、その勉強方法ならアドバイスを聞くだけで分かりそう?

>>304
ありがとうございます
お手数おかけしましたが無事動作しました
fh.write()
としていて動作が失敗していました
コメントアウトしたら動作しました

313 名前:遊園地 mailto:sage [2018/04/12(木) 22:31:11.19 ID:tAnO53/m.net]
俺もperl5やってたけど、公式ドキュメントが有った。
それと同じ様にpython公式ドキュメントをやれば良い。

314 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 19:12:20.04 ID:vvfD6Twp.net]
pythonスレでperlとかrubyとか言い出す奴は
やべー奴ってことか

315 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 19:46:32.40 ID:fIxp3q6f.net]
そりゃCバリバリ書ける奴から見ればそうだろうな

316 名前:デフォルトの名無しさん [2018/04/14(土) 00:27:21.50 ID:fnrer+0Y.net]
どこスレでもCとか言い出す奴はアルティメットアンタッチャブル

317 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 00:27:46.56 ID:yt2qqJ9Q.net]
>>307
このスレでperlとかrubyとか言い出す奴はperlとかrubyを超使えるやべーレベルの人だからな
そんな人からすればpythonは言語としてperlとかrubyより使えねーとなるだろうな。

318 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 00:46:34.06 ID:EDFUWN6E.net]
perlやruby使いが出てきたら、「機械学習」って唱えれば退散するよw



319 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 01:05:01.45 ID:dSQ5MB/j.net]
配列の要素数が、
len(list)

Python は、頭おかしいw
この式を、どう解釈せえっちゅーんや!

一方、Ruby では、オブジェクト指向。
ary.length

320 名前:デフォルトの名無しさん [2018/04/14(土) 01:25:52.09 ID:4BsAOclQ.net]
>>310
いや、python使えねーって言うやつはある程度pythonを知っているやつだろう。知らなければ批判も感想もないわけだから。
俺もほとんどわからないから何とも言えない。これまでPerlやCばっかり使っててpythonやろうと思わなかったから。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<261KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef