- 1 名前:デフォルトの名無しさん mailto:age [2021/06/09(水) 21:05:44.61 ID:zRBfpo4e.net]
- 当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★ 【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、 プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Python公式◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi 〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その53 https://mevius.5ch.net/test/read.cgi/tech/1615846784/ 次スレたては >>985 あたりが挑戦する。 ### END OF TEMPLATE ###
- 220 名前:デフォルトの名無しさん [2021/07/01(木) 09:12:46.98 ID:47t/afFm.net]
- string = '<001>_<9>'
size = 3 から strings = ['001_9', '002_10', '003_11'] 文字列中のタグ部分を任意の長さだけカウントアップした配列が欲しい def multiple_counting(size, string): _pat = re.compile(r'<(\d+)>') _tags = pat.findall(string) #カウント作成 _counters = [] _for tag in tags: __counters.append([str(int(tag)+1).zfill(len(tag)) for i in range(size)]) #書き換え _strings = [string]*size _for counter in counters: __strings = [pat.sub(count, string, 1) for count, string in zip(counter,strings)] _return strings なんか便利な関数とか、もっとシュッとしたやり方とかあると思うんですが 知らないので教えてください.あと再帰関数使いたかったけど挫折しました
- 221 名前:デフォルトの名無しさん [2021/07/01(木) 09:53:11.45 ID:n7sulsnm.net]
- 置換マップみたいなのなかったっけ
- 222 名前: [2021/07/01(木) 10:36:03.88 ID:Ipwd3DUh.net]
- >>220
[re.sub(r'<([0-9]+)>', lambda m: f'{{:0{len(m[1])}}}'.format(int(m[1]) + i), string) for i in range(size)]
- 223 名前:デフォルトの名無しさん [2021/07/01(木) 18:34:44.42 ID:47t/afFm.net]
- >>222
ありがとうございます
- 224 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 19:00:33.74 ID:s31eTWYH.net]
- 今日は重回帰分析勉強したわ
スカラーベクトル行列転置をやったけど逆行列って言うのがよくわからねえわ そろそろ中卒の俺の頭もセグメンテーションエラーだわ じゃあの
- 225 名前:デフォルトの名無しさん mailto:sage [2021/07/01(木) 19:55:12.97 ID:m9mL4lnU.net]
- >>224
誰もお前に興味ないから無駄な報告は要らんぞ
- 226 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 08:18:08.33 ID:tPTf4bIR.net]
- >>225
お前俺に興味津々だな また来るわじゃあの
- 227 名前:デフォルトの名無しさん [2021/07/02(金) 08:46:35.95 ID:9LnHCrkz.net]
- >>224
さきに高校数学と線形代数やれ
- 228 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 13:03:57.17 ID:cZhhmJXr.net]
- >>227
もちろんやったわ スカラーベクトル行列は理解したわ
- 229 名前:デフォルトの名無しさん [2021/07/02(金) 13:17:37.81 ID:9LnHCrkz.net]
- それで逆行列が分からんのに何を理解したというねん
- 230 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 13:26:09.60 ID:m4gnkicM.net]
- はい出ましたw
きちんと理解してないから分からないとかいう奴www
- 231 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 13:32:26.18 ID:ILBLMl6W.net]
- やつ
- 232 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 17:57:31.72 ID:Xm/bZCrF.net]
- value: int みたいに型指定したほうがいいの?
- 233 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 21:23:10.28 ID:SG4SXaSP.net]
- Python処理系は今のところdataclassのフィールド生成くらいにしかタイプヒントを利用しない
それ以外のタイプヒントは完全にタイプチェッカー向けで、タイプチェッカーを利用しないならつける意味はない
- 234 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 21:53:09.57 ID:QH8xfbBh.net]
- 逆行列のどこが分からないのかな
AB=I Iは単位行列 のときBはAの逆行列
- 235 名前:デフォルトの名無しさん [2021/07/02(金) 22:17:24.51 ID:E59Amcuv.net]
- 逆元が分からんのだろ
行列やってる段階の奴が群知ってるとは思えないが
- 236 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 09:39:19.49 ID:UqPPpbRy.net]
- >>234
いや単位行列は斜めに1があるやつで 逆行列は普通の行列に逆行列をかけると単位行列になるって言うのはわかるんだよ ただその後これはスカラーですだのこれはベクトルですだの出てきて記号いっぱいになると途端に訳が分からなくなるのだよ分かる? 行列積があーだのこーだの
- 237 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 09:40:33.15 ID:UqPPpbRy.net]
- >>235
偉そうなやつだなあ 友達いないだろお前?
- 238 名前:デフォルトの名無しさん [2021/07/03(土) 11:01:50.13 ID:gq7PWL9B.net]
- >>236
馬鹿には無理
- 239 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 11:06:01.41 ID:MyiFvpsW.net]
- おっさんは行列を高校でやってるからなあ
- 240 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 11:53:08.74 ID:ENhcG6bL.net]
- 内積、外積
- 241 名前:デフォルトの名無しさん [2021/07/03(土) 12:45:29.69 ID:WO4lFPcp.net]
- >>236
>分かる? とか言われてもその気持ちは分からんなぁ 普通に行列やって普通に単位取れたってことは特に苦労しなかったんだから、 ワケが分からなくなることがなかった 記号が一杯でも初見で大丈夫だったからお前の気持ちは一切分からん
- 242 名前:デフォルトの名無しさん mailto:sage釣 [2021/07/03(土) 14:35:42.16 ID:ZeViGhZj.net]
- 関流に弟子入りするべき
- 243 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 16:40:21.53 ID:mObkgdSa.net]
- >>236
とりあえずは普通の掛け算だと思って (可換則は成り立たないけど) 大丈夫なんだが
- 244 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 17:33:35.17 ID:KyOEtNLT.net]
- pythonってプログラミング言語の中では簡単な方って本当ですか?
最近勉強してるんですが難し過ぎるんですが
- 245 名前:デフォルトの名無しさん [2021/07/03(土) 17:57:04.61 ID:2G/hXmzA.net]
- [[1,2,3], [1,2,3], [1,2,3]]
がほしいとき [[1,2,3]*3]じゃなくて[[1,2,3]]*3だけど 感覚的には前者なので違和感が強いです なんかいい感じに納得させてもらえませんか
- 246 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 18:07:23.78 ID:bc4tv4Cc.net]
- >>244
言語としては簡単な方だよ ただ言語の難しさとプログラミングの難しさって別だからね 言語の選択ってのは迷路の広い入り口を選ぶか狭い入り口を選ぶかであって、迷路を進み始めると後は同じなんだよ
- 247 名前:デフォルトの名無しさん [2021/07/03(土) 18:15:50.79 ID:WO4lFPcp.net]
- かんたん言ってる奴は先に別の言語をやってた可能性が高い
それに比べるとかんたんと言ってる
- 248 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 19:42:13.76 ID:KyOEtNLT.net]
- >>246
なるほど 一つの言語を極めると他の言語を覚えるのは簡単と言うのが分かった気がします pythonを極められるように頑張ります
- 249 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 20:08:02.32 ID:IMGL3rxE.net]
- >>245
'aho'*3は 'ahoahoaho'になる ''や[]は*3に文字列やリストを渡す 役目があって*3の前に役目を終えている
- 250 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 21:33:02.67 ID:I7Zt9Z8V.net]
- 合成関数のとことかシグモイド関数の微分とかお前らモヤらんのか?
中卒野俺にはわからんがめっちゃ頭いいな
- 251 名前:デフォルトの名無しさん [2021/07/03(土) 23:09:47.68 ID:91vjT9iB.net]
- 頑張って一般化逆行列を理解しよう
- 252 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 23:27:47.89 ID:avhnjRXY.net]
- YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
初心者は、Ruby on Rails から始める Python, PHP も勧めていない バックエンドは、Ruby → Go という路線
- 253 名前:デフォルトの名無しさん [2021/07/04(日) 00:07:57.92 ID:DDnLb3K7.net]
- ケンタはあわしろ氏の一番弟子。
実力は折り紙付き。
- 254 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 03:15:46.12 ID:kVVHiiiU.net]
- TIOBEのTOP10から転落した落ち目言語はポイーで
- 255 名前:デフォルトの名無しさん [2021/07/04(日) 08:47:31.64 ID:5abFjuPT.net]
- 範囲内、重複なしのreq_indexでdb(リスト)からデータ取得する
selection = [db[idx] for idx in req] こういうのの逆で、渡されたreqに含まれてないidxデータ取得するとき、一番スマートなのはどういう書き方?
- 256 名前:デフォルトの名無しさん [2021/07/04(日) 08:50:25.61 ID:5abFjuPT.net]
- db[あ,い,う,え]
req[0,2] get[い,え] ていう場合
- 257 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 10:13:27.09 ID:hbHHSLi0.net]
- >>255
[[i, v] for i, v in enumrate(db) if i not in req] おわり
- 258 名前:デフォルトの名無しさん [2021/07/04(日) 10:17:54.09 ID:pili1Lz/.net]
- >>245
[3*3] -> [9] [3]*3 -> [3, 3, 3] [[3*3]] -> [[9]] [[3]*3] -> [[3, 3, 3]] [[3]]*3 -> [[3], [3], [3]]
- 259 名前:デフォルトの名無しさん [2021/07/04(日) 10:19:32.88 ID:pili1Lz/.net]
- >>248
>一つの言語を極めると他の言語を覚えるのは簡単と言う 誰が言ったの?
- 260 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 12:15:28.10 ID:1R4z78Cs.net]
- ってみんな言ってます!
- 261 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 14:20:14.26 ID:BYgnURbL.net]
- わしもそう思う
- 262 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 15:29:30.76 ID:uQBb7zfv.net]
- いやプログラムの根底は演算と型と制御だろ
そりゃベースが出来てれば大体何でも出来るわ
- 263 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 15:59:44.10 ID:SaImNcMt.net]
- あとライブラリの探し方と使い方かな
- 264 名前:デフォルトの名無しさん [2021/07/04(日) 16:34:17.72 ID:i/yFAdE3.net]
- >>255
db=[10,20,30,40] req=[0,2] a=list(set(db)-{db[i] for i in req})
- 265 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 17:11:19.65 ID:Thc8jF3i.net]
- プログラムの根底とプログラミングの根底は全く別物
その程度の区別が出来ないようなら大体何も出来ない
- 266 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 18:27:39.63 ID:CJXzLbyo.net]
- proxyを通して接続するときに、そのproxyが生きているかどうかだけ確認したいのですが
実際に存在する適当なサイトに接続してステータスコード200を確認すればよいのでしょうか? 今は、 プロキシ経由OKの(なるべくレスポンスの速い)サイトでrequests.getして200返ってきたらproxy生存 みたいにしてるのですが それ専用のチェックの仕方があるのかな、と気になりました
- 267 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 19:06:12.27 ID:KdurfuN3.net]
- >>265
確かに1行目と2行目の文章が繋がってないお前が言うと説得力あるなあ
- 268 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 20:09:32.45 ID:L4Prcy4Z.net]
- >>255
[db[i] for i in {i for i in range(len(db))}-set(req)]
- 269 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 21:43:55.75 ID:aHJdtdht.net]
- >一つの言語を極めると、他の言語を覚えるのは簡単
これ自体が嘘。 10年以上掛かるし、各言語の特殊性を学んでも、再利用できないから無駄 YouTube で有名な、雑食系エンジニア・KENTA は全く逆の事を言ってる 80 : 20 の法則。 簡単な80% の部分だけを学ぶべき 難しい20%の部分は、特殊だから再利用できない・使う頻度が少ない割に、 学ぶ時間が何倍も掛かるので、効率が悪い 専門学校で必ず言われること 例えば、法律の条文の暗記とか、 15題ずつ、重要度A・B・Cのランクがあったら、 AB だけ暗記して、C を捨てろとか 使う・出る確率が低いから、そこに暗記コストを掛けるのが無駄 ドラゴン桜で言う、京大英語・赤本で英語を学ぶなという格言。 特殊で、誰も使わないようなトリビア表現に、時間を掛けるな 数百人のネイティブがチェックしてる、英検をやれ
- 270 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 21:52:26.25 ID:1R4z78Cs.net]
- >>269
その20:80割合逆だろ 簡単以前なことも学べてないじゃないか
- 271 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:03:17.62 ID:9C8iWrP9.net]
- 推奨NGWord
Ruby あわしろ氏 雑食系エンジニア
- 272 名前:デフォルトの名無しさん [2021/07/04(日) 22:19:49.10 ID:YfSOCxWP.net]
- そうして簡単な単純労働しかできない人が量産されるんですね
- 273 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:21:45.55 ID:1R4z78Cs.net]
- 簡単な部分の精度を上げろってこった
- 274 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:35:43.14 ID:ZDZVmq0W.net]
- 難しい2割を理解できる人が世の中をまわす
- 275 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:38:11.14 ID:1R4z78Cs.net]
- むつかしいほうは8割だっつっとろうが
- 276 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:39:45.78 ID:SVViFRUT.net]
- >>270
横からだが逆じゃないと思うよ もちろん全体の100をどう捉えるか次第だけど
- 277 名前:269 mailto:sage [2021/07/04(日) 22:40:16.40 ID:aHJdtdht.net]
- 簡単な80% の部分を、横に進めていく。
Ruby on Rails なんて、まさにそう。浅く広く Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース さらに、AWS Fargate, Terraform, Vue.js, TypeScript KENTA のサロン、AWSのくろかわこうへいのサロンに入る。 だから、1年の未経験者が、10年以上のプロよりも技術力が上になる! 時間が掛かる、難しい20%の部分を勉強しないから。 これを、KENTAが勉強方法のチートと言ってる 簡単な80%の部分の勉強時間は、20%しか掛からないのに、 難しい20%の部分の勉強時間は、80%掛かる つまり、勉強時間では逆になる。 しかも、特殊だから再利用できない・使う頻度が少なく、役に立たない 例えば、C を10年やってる香具師の大部分の時間が、ポインターを追っかけている時間 だから、時間が掛かるだけで、何も学べていないから、 Railsを1年やっただけの未経験者に負けてしまう Rubyの女神・池澤あやかも言ってる。 大学生がプログラミングで挫折するのは、Cをやるからだって つまり、ほぼ無意味なことを長時間やるから、しょーもない
- 278 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:41:49.47 ID:ZDZVmq0W.net]
- 重要なのは2割って話は知ってるけど
簡単なのは2割って知らんな
- 279 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 22:48:09.20 ID:1R4z78Cs.net]
- 統失煽りで文化人を一人殺したので
名前が同じだけでもてはやされてたKENTAは用済み
- 280 名前:デフォルトの名無しさん mailto:sage [2021/07/04(日) 23:01:11.65 ID:PTs94Rmb.net]
- Rubyって時点でお察し
- 281 名前:デフォルトの名無しさん [2021/07/05(月) 00:27:11.73 ID:SA0zdM26.net]
- > だから、1年の未経験者が、10年以上のプロよりも技術力が上になる!
プロ舐めすぎやろ 自分のレベルすら正確に把握出来てないだけじゃん
- 282 名前:デフォルトの名無しさん [2021/07/05(月) 01:30:50.54 ID:cyuSl6kj.net]
- >>245
演算規則を考えよう 1 * 3 = 1 + 1 + 1 = 3 [1] * 3 = [1] + [1] + [1] = [1, 1, 1] であるので、 [[1]] * 3 = [[1]] + [[1]] + [[1]] = [[1], [1], [1]] となる 加算と乗算に一貫性をもたせるとしたらこうするか、 1 + 1 = [1, 1] [1] + [1] = [[1] + [1]] のような規則にするしかないけど、明らかに1 + 1がリストになっちゃうのは使いにくいでしょ
- 283 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 01:54:24.43 ID:ts/O0CHN.net]
- >>281
ダニングクルーガー効果ってのがあってぇ…
- 284 名前:デフォルトの名無しさん [2021/07/05(月) 08:07:41.22 ID:308oM4PQ.net]
- >>255
db=[10,20,30,40] req=[0,2] a=len(db) for i in req: db.pop(i-a)
- 285 名前:デフォルトの名無しさん [2021/07/05(月) 11:09:29.47 ID:c503ASju.net]
- >>281
https://bokurema.com/
- 286 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 11:52:44.70 ID:DJ8mSFAE.net]
- Railsはすべて分かっている人にとっては楽
初心者は設定や、細かいチューニングで必ずつまずく
- 287 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 14:49:22.59 ID:WfBg4Dd7.net]
- pandasで特定の列(横)の重複した値を削除して一つだけにするのってどうするの
例えばA,B,C,B,C,DってあったらA,B,C,,,Dにしたい(BやCのみでも可)
- 288 名前:デフォルトの名無しさん [2021/07/05(月) 14:56:34.11 ID:zfQ+6anv.net]
- kwsk
- 289 名前:デフォルトの名無しさん [2021/07/05(月) 17:20:56.75 ID:rH8GS2yx.net]
- >>287
あえてPandas使ってとなるとむずいな
- 290 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 18:56:50.40 ID:+tp9LwEv.net]
- BやCのみでも可なら
df.replace('B','').replace('C','') それとは別にdf.duplicatedで空白にしたいインデックスがTrueになる データフレームが得られる データフレームにSQLほどの機能はないようだ
- 291 名前:デフォルトの名無しさん [2021/07/05(月) 20:17:35.08 ID:41zUyXOD.net]
- dfの横はlist的に扱えるから一次元リストの重複要素を任意の値に置き換えるという操作をするだけでは?
- 292 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 21:27:56.39 ID:WfBg4Dd7.net]
- サンクス!
- 293 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 00:10:38.82 ID:c1bms/+C.net]
- みんなのPythonで勉強しているのですがP340のwith文の説明がよくわかりません
私の理解では、with文でopen()した場合は、ファイルを最後まで読み切ったら自動的にclose()する処理になると思っています この参考書には、openするファイルが存在しなかったらファイルを開かないで処理を終了する、ということが書いてあるのですが間違っていないでしょうか openするファイルが存在しないと普通にエラーになるのですが
- 294 名前:デフォルトの名無しさん [2021/07/06(火) 00:38:25.59 ID:wcT5LwJn.net]
- modeによるとしか
readならその通り。writeはファイルが存在しなければ作成される。
- 295 名前:デフォルトの名無しさん [2021/07/06(火) 00:48:09.74 ID:IX8Wt/RA.net]
- modeの話?
- 296 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 00:52:21.13 ID:AJxevGXU.net]
- Ruby では、存在しないファイルを読もうとしたら、エラーになる。No such file
print File.read 'abc.txt' 出力 No such file or directory @ rb_sysopen - abc.txt (Errno::ENOENT)
- 297 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:06:54.99 ID:c1bms/+C.net]
- 参考書の例文はモード指定しない既定なのでreadです
with文のreadモードで開いたファイルをfor文で一行ずつprintしています 説明によると、ファイルが存在していたら処理を行うという意味のコードになるとのことです
- 298 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:21:35.74 ID:n3HBlCzk.net]
- おじちゃんせっかくマニュアルあるのに読まない子の気持ちはわからないよ
https://docs.python.org/ja/3/library/functions.html?highlight=open#open
- 299 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 01:33:10.58 ID:M25Qh6q2.net]
- >>293
>私の理解では、with文でopen()した場合は、ファイルを最後まで読み切ったら自動的にclose()する処理になると思っています 違うよ >この参考書には、openするファイルが存在しなかったらファイルを開かないで処理を終了する、ということが書いてあるのですが間違っていないでしょうか サンプルコードではFileNotFoundErrorをハンドリングしてるね https://colab.research.google.com/github/shibats/minpy_samplecodes_4th/blob/master/Chapter10/10-01.ipynb
- 300 名前:デフォルトの名無しさん [2021/07/06(火) 16:37:29.04 ID:ewE8N/dz.net]
- def test():
__return random.randint(2,5) obj=[test(), 0, 1] l = random.choices(obj, k=3) # -> [4,2,0] testが毎回実行されて(lに違う数字で入って)ほしい どう書けばいいの?
- 301 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 16:45:42.95 ID:Fj5fpx8O.net]
- >>293
withブロックを出るときにclose open関数の中で ファイル確認して ファイルを開く ファイル確認でエラー 開いてない ないのに開けない
- 302 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 16:46:46.00 ID:8bcWgGBz.net]
- def test():
__return random.randint(2,5) def exectest(): __obj=[test(), 0, 1] __l = random.choices(obj, k=3) exectest()
- 303 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 18:44:35.16 ID:yuAoY/NP.net]
- numpy.loadtxtでcsvファイルを読み込むんだが、csvファイルのデータが崩れていることがある。
で、何行目にエラーがあって取り込めなかったのかを知りたいんだが、いい方法ない? データが崩れているというのは、例えば、 -1.234,123.45.789, みたいに、ありえない数値表現が紛れているということなんだが csvファイルが崩れないようにするのが本筋だけどそっちに頑張る気がないので おかしな行を見つけたら手動でその行を削除して再度処理という感じで運用したい
- 304 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 19:22:28.01 ID:BTTPD25v.net]
- typeでチェックすれば
- 305 名前:デフォルトの名無しさん [2021/07/06(火) 20:02:32.04 ID:MGYt6+tS.net]
- 通常はどういう数値が入るのか分からんとなんとも言えないな
- 306 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 21:14:42.87 ID:yuAoY/NP.net]
- >>304
詳しく >>305 通常は小数点付きの数値でマイナスの場合もある
- 307 名前:デフォルトの名無しさん [2021/07/07(水) 00:12:50.55 ID:eWdID8i0.net]
- >>303
1pandasで文字列としてロード 2走査しつつ数値にパース 3失敗したらスキップ
- 308 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 00:17:53.03 ID:bUHYGk47.net]
- 例えば、Ruby では各列を、変換器・converter で変換して、
変換できたかどうか、型を確認するとか require "csv" input_str = <<"EOT" -0.0,1.2.3 9..9,-0 EOT csv = CSV.new( input_str ) csv.convert( :numeric ) # 数値型へ変換する line_num = 0 # 行番号 csv.each do |row| line_num += 1 p [ line_num, row[ 0 ].class, row[ 1 ].class ] end 出力 [1, Float, String] [2, String, Integer] 1.2.3, 9..9 が、変換に失敗して、文字列型のまま
- 309 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 00:41:11.10 ID:DonMIAPH.net]
- >>293です
よく分からなかったのは私の勘違いが原因でした P340に記載されている内容はP338の差分だったことが分かりました やっと理解できました 失礼いたしました、皆様ありがとうございました
- 310 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 00:49:15.09 ID:85qcEXGX.net]
- >>308
せめてnumpyを移植してから知った風な口を利け
- 311 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 14:46:15.07 ID:JFEXb6g2.net]
- pep8に
単一の文字 'l' (小文字のエル)、'O' (大文字のオー)、'I'(大文字のアイ) を決して変数に使わないでください。 フォントによっては、これらの文字は数字の1や0と区別が付かない場合があります。 ってあるけど、上のような理屈であれば、単一の文字でなくても同じ理由で使うべきではないことになるんでは?
- 312 名前:デフォルトの名無しさん [2021/07/07(水) 15:11:46.21 ID:49748z4f.net]
- 10ng と long と IONG を間違うかって話だな
- 313 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 16:43:31.83 ID:2KJNjcti.net]
- $python hoge.py 10 | python hoge2.py | python hoge3.py
### hoge.py ### import sys for i in range(int(sys.argv[1])): _print(i) ### hoge2.py ### import sys a=''.join(sys.stdin.readlines()).strip().split('\n') a.append(len(a)) for n in a: _print(n) ### hoge3.py ### import sys print(len(''.join(sys.stdin.readlines()).strip().split('\n'))) ざっくり (1)hoge.py 10で10個数字を出力 (2)hoge2.pyで受け取り、値を追加して出力 (3)hoge3.pyで受け取り、1個増えたことを確認 なのですが、受け取った値を成形する ''.join(sys.stdin.readlines()).strip().split('\n') の部分はこの書き方でよいでしょうか? そもそも標準出力をprintでやるのかもわかりません それ専用の標準ライブラリとかあるのかな
- 314 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 17:49:17.95 ID:vUBZA2na.net]
- >>313
標準出力はprintでやるのでいいよ 1行ごとに処理したいわけじゃなければ.read().splitlines()すればいいと思う #hoge2.py import sys a = sys.stdin.read().splitlines() a.append(len(a)) for n in a: __print(n) #hoge3.py import sys print(len(sys.stdin.read().splitlines()))
- 315 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 18:46:33.05 ID:2KJNjcti.net]
- >>314
なるほどprintでよかったんですね splitlinesできました!ありがとうございました
- 316 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 21:41:26.17 ID:g5ngXWNu.net]
- raspbian buster上のpython3.7.3で、
subprocess上で読み込むcsvファイルをStringIOにするとうまくいかず困っています。 以下2つのソースで、異なるのは1行目だけです。 [test1.py] CSVFILE = '/tmp/1.csv' with open(f'{CSVFILE}', 'a') as CSV: writer = csv.writer(CSV) writer.writerow([12,34,56]) CSV.close() cmd = (f'cat {CSVFILE}') proc = subprocess.run(cmd, shell=True) [test2.py] CSVFILE = io.StringIO() with open(f'{CSVFILE}', 'a') as CSV: writer = csv.writer(CSV) writer.writerow([12,34,56]) CSV.close() cmd = (f'cat {CSVFILE}') proc = subprocess.run(cmd, shell=True) $ python3 test1.py 12,34,56 $ python3 test2.py /bin/sh: 1: Syntax error: end of file unexpected 何を見落としてるんでしょうか…?
- 317 名前:デフォルトの名無しさん mailto:sage [2021/07/08(木) 22:38:29.83 ID:PyDOiOef.net]
- 何をしたいかが全く分からないがとにかく
そのエラーは/bin/shが cat <_io.StringIO object at 0x7f1360de01f0> とかいう文字列を実行しようとして >が出力のリダイレクトと解釈してその後にファイル名がないからエラーになってる
- 318 名前:316 mailto:sage [2021/07/09(金) 07:49:00.55 ID:6wIK8ZSE.net]
- >>317
ありがとうございます! 例で実現したいことは、 $ python3 test2.py 12,34,56 この結果が出るにはどうしたら良いかが知りたいです。 シェルから見て実体のあるファイル名でないとダメってことですね。それはそうか。 一度ファイルシステムに書き出せば良いのでしょうが、それ以外の手はないでしょうか。 なお、例では長くなるのでcatコマンドに書き換えましたが、実際にやりたいことは 「pythonの前段処理結果をcsvに書き込み、そのcsvをgnuplotで読み込んで作図(を毎秒繰り返し)」というプログラムです。 処理結果の数字は毎秒積み上がっていくのと、プログラム終了時には実体のcsvファイルに書き出したいのとで プログラム上では、StringIOを使ったcsvファイルとして処理したいです。
- 319 名前:デフォルトの名無しさん mailto:sage [2021/07/09(金) 08:12:26.61 ID:2AR12dC9.net]
- >>318
>「pythonの前段処理結果をcsvに書き込み、そのcsvをgnuplotで読み込んで作図(を毎秒繰り返し)」 だったら質問の意味が尚更分からん 上記の処理を1プログラムでやりたいなら Pythonで前処理⇒直接前処理結果をグラフ作画⇒作画後に必要に合わせてデータをcsv出力 っていう流れの方が良くね? 書き込んでから読み込む必要性が全く分からん
- 320 名前:316 mailto:sage [2021/07/09(金) 08:30:32.97 ID:6wIK8ZSE.net]
- >Pythonで前処理⇒直接前処理結果をグラフ作画
前処理では複数行複数列の数字(時間と温度です)を積み上げていくので、 その前処理結果のgnuplotへの渡し方としてcsvが適当かな、と思ったためです。 それとも、そもそもpythonスクリプトとしては前処理のアウトプットだけでexitし、 gnuplotはOS側シェルで普通に動かして前処理結果を使えば?という意味だとすれば、 今回はpythonスクリプト内でgnuplotを動かしたいです。
|

|