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

■ このスレッドは過去ログ倉庫に格納されています
2018/03/17(土) 16:32:25.91ID:S1lkLDnv
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その36
http://mevius.2ch.net/test/read.cgi/tech/1514805522/
196デフォルトの名無しさん
垢版 |
2018/04/06(金) 23:40:31.97ID:eal1pYjS
「みんなのPython 第4版、2017」が定本

そこに、なでしこの作者・クジラ飛行机が参入。
その後、掌田津耶乃・大津真など、多言語の作者も参入
2018/04/07(土) 03:30:14.58ID:0IMs8tmt
1 2 3
4 5 6
7 8 9
の入力があった時に行ごとの計算結果を出したいときってどうしたらいいですか?
2018/04/07(土) 04:03:02.27ID:ic1KeMb4
ちょっと状況分かんないけど
合計ならforで行ごとに
sum([1, 2, 3])
とか
2018/04/07(土) 06:51:19.63ID:WL4rZ6s4
Ruby なら、

text = <<'EOT'
1 2 3
4 5 6
7 8 9
EOT

text.each_line do |line| # 1行ずつ処理する
# 末尾の改行を削除して、空白区切りで、配列に入れる
numbers = line.chomp!.split
# 数値に変換してから、配列内のすべての数字を足す
puts numbers.map(&:to_i).inject(:+)
end
2018/04/07(土) 10:55:48.14ID:0nAeQwXs
酷いなRuby。Perlの悪しき轍を踏んでいるのか。
201デフォルトの名無しさん
垢版 |
2018/04/07(土) 12:08:10.14ID:BRhgC8GS
>>197
pandas だと行ごとの map とか reduce とかあるし
202デフォルトの名無しさん
垢版 |
2018/04/07(土) 12:49:26.90ID:vUF6Z2rf
Flaskを使ってWebサービスを作ろうと思っています。
その裏ではある処理を行うPythonのプログラムがあって、
その結果をリアルタイムにWebページに反映するという仕組みを作りたいのです。
例えるなら時計のページのようなものです。

このようなものを実現する方法として、どの様にするのが良いでしょうか?
自分なりに考えてみたところでは次のようなやり方で出来るかなと思うのですが
なんだか無駄が多いような気がして、もっとスマートに実現出来るのでは?という気がします。
アドバイスを頂けると嬉しいです、よろしくお願いします。

(1)バックグラウンド処理の部分をthreadingを継承したクラスで作成し
(2)Webサービス本体となるapp.pyで、(1)をインスタンス化して実行
(3)(1)からの処理結果はapp.pyにコールバックで返却
(4)app.pyのコールバック関数はsocketioを使ってWebページに処理結果を送る
(5)websocketを受け取ったWebページは、処理結果をページに反映させる
203デフォルトの名無しさん
垢版 |
2018/04/07(土) 13:00:52.26ID:BRhgC8GS
Brython
204デフォルトの名無しさん
垢版 |
2018/04/07(土) 14:26:32.33ID:z2/bO+GF
>>188
「めんどうなことはpythonにさせよう」が面白かった。
2018/04/07(土) 14:35:20.07ID:nRtWZzWw
>>202
リアルタイムで更新したいならフロントエンドにreactを使え
206遊園地
垢版 |
2018/04/07(土) 15:07:01.03ID:77S40Xyy
>>197

#スペース区切りの数字を受け取り 3回
#l=[list(map(int,input().split())) for _ in range(3)]

#完成するデータ
l=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

#横の合計
[print(sum(i)) for i in l]

#改行
print()


#縦の合計
[print(sum(i)) for i in list(zip(*l))]
2018/04/07(土) 15:17:10.46ID:2Xz4c+5M
こんくらいブラウザでやれば?
`
1 2 3
4 5 6
7 8 9
`
.trim().split`\n`
.map(row => row.split` `.map(Number).reduce((a, b) => a + b))
.forEach(rowSum => console.log(rowSum));
2018/04/07(土) 17:08:57.70ID:p0Pua3Pc
javaみたいな気持ち悪さ
2018/04/07(土) 17:27:49.50ID:7ZRXk+Y5
なんで最近のプログラミング界ではforが迫害されてmapやreduceがもてはやされてるの?
初心者には分かりにくいと思うんだが。
2018/04/07(土) 17:49:01.49ID:4dLkJWTk
初心者のことなど知らん
2018/04/07(土) 20:07:36.83ID:VRHJEDN5
s.split(",")
s.replace(",","\t")
",".join(s)
joinだけ何故こんな文法に?
212デフォルトの名無しさん
垢版 |
2018/04/07(土) 20:15:43.06ID:WHguHUHL
>>209
基本的には、パフォーマンス上のメリットがあるから。
けれど、PythonやJavaScript(ES6)の場合はジェネレータもあるので、
パフォーマンスを保ちつつ、for文を使ったやさしい書き方もできる。
Javaだと、ガチで>>207の書き方しかできない。
2018/04/07(土) 20:19:53.21ID:iO/NW/s5
>>211
join を文字列のメソッドにしたかったから
2018/04/07(土) 20:26:18.12ID:Iu5gYSvH
Python の join() が文字列型のメソッドである理由
https://www.lifewithpython.com/2017/07/why-python-join-is-string-method.html
2018/04/07(土) 22:15:55.69ID:u6SiCNsb
>>210
仕事でソフト開発している人が、初心者のために分かりやすいコーディングをしているとは思えないよな。
216188
垢版 |
2018/04/07(土) 22:55:32.20ID:UAWtR4Cc
>>195
あっ、レス付いてる
ありがとうございます
注文することにしました
読んでみたらレビューしますね
2018/04/08(日) 00:14:01.39ID:j+FIppRr
>>202
このスレのレベルを超えた質問で場違いな感じの質問だな
2018/04/08(日) 01:12:18.12ID:s6V+xdvY
>>215
逆だよ。仕事でソフト開発している人が、難読コードを書いちゃいかんだろ。
2018/04/08(日) 01:18:01.50ID:kOs0IpX+
>>218
例えば、リスト内包表記は慣れたらめちゃくちゃわかりやすいんだけど、初心者には不評
でも慣れてる人にはわかりやすいから内包表記を使いまくるってことだろう
2018/04/08(日) 01:33:34.80ID:ikNNlzZg
>>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);
}
2018/04/08(日) 02:22:57.13ID:jNVGKdq/
joinは文字列の連結がウリなのに、引数を一個しか指定できないのが謎過ぎる
",".join("A","B","C")ってやりたい時に、実際はあらかじめ"A","B","C"をリストに入れるか
+で連結しとかんといかんって本末転倒だろ
2018/04/08(日) 02:36:06.55ID:6R1G24Uu
>>221
[ ]で囲むだけだろ
Pythonでは可変長引数はあまり好まれない
223デフォルトの名無しさん
垢版 |
2018/04/08(日) 06:58:14.21ID:gxaJAEYd
>>210
ここ超初心者のスレ。
2018/04/08(日) 10:08:27.26ID:kOs0IpX+
>>223
いや、>>210>>209への返答よ?
225デフォルトの名無しさん
垢版 |
2018/04/08(日) 11:41:56.18ID:YK+KPtHu
>>209
初心者はどっちから教えても一緒だと思う
2018/04/08(日) 11:55:02.04ID:9/UswNDz
>>225
俺も大差ないと思う
forでダラダラ書くより、map,reduce,filterで簡素に書けるなら使ったほうがいいからな
2018/04/08(日) 16:29:56.48ID:MFf7xIr6
こんにちは
タイムカードを処理するアプリを作りたいと思っていて、月の勤務記録を一括で読み込んで実労働時間を出そうと思ってます。
1行毎(1日毎)に実労働時間を出して最後にそれを全て足そうと思っているのですが、行ごとの処理の仕方がわからないんです…
ご回答よろしくお願いします。
2018/04/08(日) 16:43:00.39ID:GoOLzpCW
一行分の入力データと
一行分の入力データから得たい出力データを記載しろ
2018/04/08(日) 16:48:16.19ID:MFf7xIr6
1行分の入力 2017/03/01 12:00-15:00 16:00-24:00

出力 11

こんな感じです
そもそもsys.stdin.readlines()で処理するのが正しいんですかね
230デフォルトの名無しさん
垢版 |
2018/04/08(日) 16:59:45.98ID:nkM5b3tX
pandas.read_from_hogehoge
2018/04/08(日) 17:46:41.40ID:6sp2I/Ld
>>> 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 2017/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
232デフォルトの名無しさん
垢版 |
2018/04/08(日) 17:50:59.38ID:6sp2I/Ld
>>> 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)
2018/04/08(日) 18:54:45.02ID:1mmlbc0v
Ruby だと、時刻に、24時は無いけど。
23まで

午前中は、どう表記してる?
03:05, 3:05 のどっち?
234遊園地
垢版 |
2018/04/08(日) 20:12:56.50ID:gmVtfD5c
>>229
ごめん。仕様ミスで行数が増えたら対処できない。
そこは改変してくれ。

https://ideone.com/1izELX
235遊園地
垢版 |
2018/04/08(日) 20:22:54.67ID:gmVtfD5c
なんか、知らんけど腕が落ちてる。
2018/04/08(日) 20:26:08.17ID:3hKhfzCU
拾っとけ拾っとけ1割もらえるかもよ
237遊園地
垢版 |
2018/04/08(日) 20:30:56.58ID:gmVtfD5c
そっちじゃねえよww
2018/04/08(日) 21:23:41.29ID:MFf7xIr6
>>233
午前中は5:00まで29:00の仕様です
2018/04/08(日) 21:24:04.77ID:MFf7xIr6
助かります。参考に書いてみます
2018/04/08(日) 21:46:24.45ID:5trngRbI
>>238
5時がタイムカード上では29時なんか
夜23時から早朝の5時勤務の場合
タイムカードは23:00-29:00
夜23時から早朝の6:00時勤務の場合
タイムカードは23:00-06:00
夜1時から早朝の5時勤務の場合
タイムカードは25:00-29:00
とかになるのか
2018/04/08(日) 22:02:44.17ID:MFf7xIr6
>>240
そうです
なのであり得ませんがフル勤務の場合は5:00-29:00になりますね
2018/04/08(日) 22:54:58.64ID:eu3b+r+J
>>238
それって残業代どうなるの?深夜勤務、8時間超えたら、〇時間超えたら何割増しってあるんでしょ?
243遊園地
垢版 |
2018/04/08(日) 23:52:48.14ID:gmVtfD5c
規模によるがw
数百万から数千万の未払金が発生するなww

ただの問題サイトのテストケースだろうけどなw
2018/04/09(月) 04:01:32.98ID:WaD3v69G
>>242
そこからは自力で書いてみようと思ってます
245デフォルトの名無しさん
垢版 |
2018/04/09(月) 10:27:28.30ID:l0CeQllx
>>229
医師とかだとこういう勤務形態になるのかな
246遊園地
垢版 |
2018/04/09(月) 10:40:52.05ID:Ptdpw/63
朝4時に起きとか、怖過ぎ。
2018/04/09(月) 10:59:02.77ID:s1r7cemC
月200時間以上ざんぎょーしてた頃がなつかしーわー
3れんきん(中日は24時間勤務)とかふつうにあった

書類上は
5分仕事 15分休憩
の繰り返しになってた
248遊園地
垢版 |
2018/04/09(月) 14:05:06.99ID:Ptdpw/63
仕様が決定して有るなら、作業みたいなモノだろうに。
そんなに仕事を抱え込めるのかな?

管理も兼任してたら、オーバーフローでオーバーロードですな。ww
249デフォルトの名無しさん
垢版 |
2018/04/09(月) 14:23:31.09ID:GdkyYm9A
rubyスレにマルチするのやめれ
2018/04/09(月) 15:40:06.66ID:WaD3v69G
>>234
これ曜日って出せますか?
2018/04/09(月) 16:03:42.19ID:M/BmQ9Z1
Ruby スレに書き込んだのは、python スレの書き込みとは別人。
ID も異なるはず

python スレの書き込みを見て、
Ruby ではどうプログラミングするべきか、考えてみたが難しかった
2018/04/09(月) 20:54:36.31ID:dNOi8uH1
pythonで書けてrubyで難しいなんてことがあるのか。
ちょっと意外
253遊園地
垢版 |
2018/04/09(月) 21:07:06.94ID:Ptdpw/63
>>250
出せるけど、書式変更が あーーー
https://ideone.com/aCw7iG

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

実質、2行増えただけだしな。
2018/04/09(月) 21:37:50.56ID:0kSx2Pnj
>調べても2,3分で実装まで5分掛からないんだから、頑張ろうな。
"超"初心者=>調べることができない、調べようとしない、頑張ることができない人
超初心者に不可能なことを要求するなよ。初心者ならこれらのことは出来るんだが
255遊園地
垢版 |
2018/04/09(月) 22:13:27.53ID:Ptdpw/63
>>255

>>244 で
自分で書いてみます。って書いてるやん
256遊園地
垢版 |
2018/04/09(月) 22:26:44.43ID:Ptdpw/63
とは言え。偉そうにしたのはスマンかった。

>>250
ごめん。ちょっと調子に乗ってた。
失礼しました。
2018/04/10(火) 00:18:50.47ID:RB2jjZ4g
>>255
いえいえとんでもないです
本当にありがとうございます!調べても分からなかったところだったので…
258遊園地
垢版 |
2018/04/10(火) 09:44:44.25ID:QiXBaC3n
検索の仕方は

言語 項目

python 日付

python 曜日

とかで、hitする。と思う。
259遊園地
垢版 |
2018/04/10(火) 09:48:10.16ID:QiXBaC3n
素直に行くなら、
公式Documentを落として、

英語で、ファイル内検索

かな。
260遊園地
垢版 |
2018/04/10(火) 11:25:34.63ID:QiXBaC3n
https://ideone.com/lDwos1
2018/04/10(火) 20:30:36.44ID:CXD6eMLO
for index, row in mr.iterrows():
a = row.ix[0]
a.replace(u"月","a")
月をaに置換したいんだけどうまくいかない・・・どうすればいい?
2018/04/10(火) 21:31:07.93ID:6CkCb20Q
'nichi月🔥水moku金do'.replace(/月/gu, 'a');
2018/04/10(火) 22:15:50.26ID:tEeQ8k7E
>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)
のようにする必要があるのだと思う。
外してたらゴメン
2018/04/10(火) 22:22:55.45ID:CXD6eMLO
>>263
まさに知りたかった答えです助かりました!

>>262
セミコロンが付いてるし、他の言語かな?
265デフォルトの名無しさん
垢版 |
2018/04/11(水) 00:45:52.55ID:5V3NvSPI
rrrubyyy
2018/04/11(水) 08:15:34.43ID:vlh3mMKJ
Githubで公開されていたライブラリ?モジュール?を利用したプログラムを書いているのですが、
このライブラリの関数の中に、WebからJson形式で値を取得するものがあります。
これを実行するとコンソールにズラーっと結果がPrintされるのですが、
このPrintを無効にしてコンソール上に出力しないようにする事は出来るでしょうか?

デバッグ用のPrint等が流れて読めなくなってしまい、邪魔なので出さないようにしたいです。
よろしくお願い致します。
2018/04/11(水) 09:01:53.43ID:qa2FEnRq
ライブラリなら普通はlogging使ってるはずだから設定で消せる
もし直接printしてるようならそんなものは今すぐ投げ捨てて他を探せ
そんな低品質なゴミを使ってると後々取り返しのつかないトラブルの原因になりかねない
2018/04/11(水) 09:35:50.44ID:cUARpOdH
>>266
頭が良い奴なら、ソース弄らないで動的に関数内のprint部分だけコメントになるようにするとかできるんだろうが(デコレータのような使い方で)。
でも、そんな奴は5chのpythonスレにはいないだろう
269遊園地
垢版 |
2018/04/11(水) 10:02:21.51ID:y+NDlg77
無効にする割合は、40ぐらいに設定して置いた方が無難
270遊園地
垢版 |
2018/04/11(水) 10:13:12.84ID:y+NDlg77
優秀な奴が、労力をかける場所を間違わないと思うけどな。
ほんの1つのライブラリなんだから、他を探すのが正解だと思うぞい!ww
271デフォルトの名無しさん
垢版 |
2018/04/11(水) 12:37:06.54ID:bG1z7LTF
マジレスするとstdoutのトラップで桶
2018/04/11(水) 14:41:24.70ID:nGNQyhwo
意地悪な憶測だがライセンスも読んでないに違いない
2018/04/11(水) 23:09:57.05ID:QNR3RY4l
まじめにライセンスを読むのはいかがわしい事を考えてる奴だけ説
2018/04/11(水) 23:13:13.16ID:DormuVYu
ぐう正論
2018/04/11(水) 23:54:01.75ID:VAa2HaB9
@GPS取得

Aネットにあるjsonを取得

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

↑の処理をするプログラムを組んでいます。
@はすぐ処理が終わるので問題ありませんが、Aは使用環境が外でモバイル通信を使用しているためかAの処理だけで最大5秒かかることがあってBの処理が大幅に遅れてしまいます。
Aのみ裏で処理して、@とBをループさせたいのですが、いい方法ありますでしょうか?
276275
垢版 |
2018/04/12(木) 00:05:44.68ID:qBx4xR6B
先ほどの書き方だとjsonを0.5秒以内に取得するということになってしまうので修正します。

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

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

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

10秒に1回以外は@とBのループなので問題ありませんが、↑の処理だと10秒に1回はAを処理するときに時間がかかってしまってBの処理が0.5秒で処理できなくなってしまうのが問題です。
277デフォルトの名無しさん
垢版 |
2018/04/12(木) 00:15:41.74ID:4IaDzy3O
2を実行するために1の結果が要らないならご自由に
278275
垢版 |
2018/04/12(木) 00:53:20.19ID:qBx4xR6B
スレッドという処理があったのでこれを使えばいけそうでした
自己解決すみません。
2018/04/12(木) 00:58:33.43ID:3KpeTxH4
俺ならGPSロギングとJSON取得はそれぞれ全く別個に作って別プロセスで動かすわ
結果はタイムスタンプを使って後で結合すればいい
2018/04/12(木) 01:08:15.09ID:iaId0hiD
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')
とエラーが出る

とりあえず、簡単に出力させて中身を確認したいがどのようするのがスマートだろうか?
2018/04/12(木) 01:20:58.84ID:ViqCrKfL
変数が何なのかは知らんが
>数値として計算する
なら文字列に変換すれば良いだろ
2018/04/12(木) 01:27:04.11ID:iaId0hiD
>>281
レスありがとうございます
変数全てに対して文字列に変換するのが面倒で・・・
例えば、
print(result," ",predict," ",data_test,)
であれば問題なく出力されますので
ファイルに保存する場合ももっとスマートにできる方法があれば助かります
283遊園地
垢版 |
2018/04/12(木) 01:37:46.68ID:tAnO53/m
これで、良いのかな?

f = open('text.txt', 'r')
for i in f:
print (str(i))
f.close()
284遊園地
垢版 |
2018/04/12(木) 01:39:14.90ID:tAnO53/m
見たら分かると思うけど、
f.write( str(i) )

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

これで動くっけ?
2018/04/12(木) 04:00:58.45ID:T93bDVFD
>>275-279
スレッドは、同一プロセスだろ。
こういうのは、別のプロセスでよくある

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

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

制御・組み込み系で多い

...o....o...o.....o....o..
2018/04/12(木) 04:10:10.14ID:T93bDVFD
name = 'John'
age = 20 + 3

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

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

Python には、こういう機能が無いのか?
2018/04/12(木) 04:49:22.42ID:t3ixnFe0
>>280
printは引数を強制的に文字列に変換するうえに
キーワードオプションで出力先を変更できるから
以下で通るはず。空白も改行も勝手に入る
詳しくはドキュメントの「Python標準ライブラリ-組み込み関数」を参照

print(result, predict, data_test, file=f)
2018/04/12(木) 06:25:29.02ID:t3ixnFe0
>>288
文字列中での式展開はPython3.6から実装された
3.6以前ではこの機能がなく、%記法やstr.formatメソッドを使う

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

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

フォーマット済み文字列リテラル
print(f"名前は {name}、年齢は {age}")
291遊園地
垢版 |
2018/04/12(木) 09:27:33.72ID:tAnO53/m
>>285
データ構造が不明だから、何とも言えない。

何処かで、
 書き込むべき内容を1つのリストに纏めたり
できない?
2018/04/12(木) 10:53:13.19ID:iaId0hiD
>>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()
2018/04/12(木) 10:53:50.49ID:iaId0hiD
>>289
標準出力にその機能があるなら、writeでも何とかならないでしょうかね?

>>286
str = [result, predict, data_test]
for i in str:
f.write(i)
残念ながら、
TypeError: write() argument must be str, not numpy.int64
という結果が表示されます
2018/04/12(木) 11:12:19.94ID:t3ixnFe0
>>293
これはprint関数の機能だからwriteでは使えないよ
こう変えるだけなんだけど、どうしてもwriteじゃなきゃいけないの?

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

print(result, predict, data_test, file=f)
2018/04/12(木) 11:18:36.95ID:JyHXEe/D
resultとかの各変数の中身が文字列じゃない気がする
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況