X



くだすれPython(超初心者用) その47【Ruby禁止】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2020/03/07(土) 00:40:52.77ID:k5ibAr7h
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

◇Python公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/

〇前スレ〇
くだすれPython(超初心者用) その46【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1577948214/
0750デフォルトの名無しさん
垢版 |
2020/04/23(木) 07:02:20.60ID:Q66hfIcW
まあchromeやgmailまわりでwindowsに対してめちゃくちゃ文句言ってたのは知ってる。
使ってないは言い過ぎだろうけれど、中の人達は好きじゃないだろうね。
0751デフォルトの名無しさん
垢版 |
2020/04/23(木) 09:46:07.43ID:r7Hrs66e
ローカルで実行する機械学習なんて高が知れているから重要視してないってのもある
0752デフォルトの名無しさん
垢版 |
2020/04/23(木) 15:27:21.64ID:6C0Tc6dv
初心者です。
python であるWebサイトのスクレイピングをしたいと思います。
そのサイトはアクセスする際に、
・クライアント証明(pfxファイル)
・その証明書のパスワード
・ユーザー名
・パスワード
が必要なのですが、requests で読み込むことができるでしょうか。
調べながら2〜3日やっているのですが、わけがわからなくなってきました・・・・
0753デフォルトの名無しさん
垢版 |
2020/04/23(木) 15:54:27.62ID:TKybSHyM
2行目の証明書のパスワードは
ローカルな話だから
ローカルでパスワード無しのを造れば良い

他はrequestsでOK
0754デフォルトの名無しさん
垢版 |
2020/04/23(木) 16:19:15.43ID:6C0Tc6dv
>>753
ありがとうございます。

> 2行目の証明書のパスワードは
> ローカルな話だから
> ローカルでパスワード無しのを造れば良い

すいません、理解が足りず一点質問させてください。

対象のサイトをブラウザで閲覧するとき、初回のアクセス時に 証明書(pfxファイル)を
指定してブラウザに読み込ませる(このときパスワードがいる)必要があったのですが、

・「requests でアクセスするときはこのパスワードが不要」
・または、「パスワードが不要な証明書を作り直せ良い」

のどちらになるでしょうか。
教えていただけると助かります。
0755デフォルトの名無しさん
垢版 |
2020/04/23(木) 18:26:22.45ID:i31cKoK5
>>749
デスクトップ・アプリケーションならWindows対応考えるだろうけど
ブラウザやライブラリレベルだとUnix/Linuxで動くことを前提に開発するのは当然で
Windowsの特殊な事情に対応するのはまた別のレイヤーの話だよね
0756デフォルトの名無しさん
垢版 |
2020/04/23(木) 19:34:57.98ID:iR4g/Ykk
>>754
例えばIEとかEdgeとかなら
pfxをエクスポートするときに
パスワード有無の設定が選べる
0759デフォルトの名無しさん
垢版 |
2020/04/25(土) 09:17:54.90ID:vRFirqtQ
ディープラーニングってどれくらいのマシンパワーが必要なんでしょうか?
自宅pcでやるのは無理ですか?アナコンダなど
0760デフォルトの名無しさん
垢版 |
2020/04/25(土) 09:19:43.14ID:RyJNrHEl
目的とその学習量によるが
実用化しようとすると
計算資源が不足する場合はよく起こる
0761デフォルトの名無しさん
垢版 |
2020/04/25(土) 10:10:49.05ID:7jpIjPuc
自分で1から全部作るなら問題ない
ソフトウェアというのは、その時点で開発者の想定したハードウェアにおいて人間から見て許容可能な時間で処理を完了するように作られるものだ
で、ディープラーニングというのは普通クラウドで超高性能のマシンを多数並べて動かすのが普通であり、
出来合いのツールやフレームワークはそういう環境を想定して作られている
すなわち、それを手元のPCで動かそうとすると許容できないほど遅くなる可能性が高いってこと
性能の技術的限界というよりは開発者の想定の問題なんだよ
0762デフォルトの名無しさん
垢版 |
2020/04/25(土) 10:16:21.15ID:4nLfPOGM
実行させてる間に他の事したいんだったら
もう一台PCある方がマシ

既に一台だけ持っててテストだけしたいならそれでやって
速度足りないと思ったら新規に買うなり
AzureとかVPSとか適当に外部のCPU/GPUの力を借りる
0763デフォルトの名無しさん
垢版 |
2020/04/25(土) 11:03:55.54ID:OXZXCSw6
>>759
MNIST,CIFAR10ぐらいのチュートリアルレベルならノートPCでも行ける
0764デフォルトの名無しさん
垢版 |
2020/04/25(土) 11:30:43.89ID:sGYbLeKJ
>>759
これ自分も気になる
ローカルでHello Worldレベルの機械学習の勉強をやってみたい

クラウドのサービスとか使わずにやってみたい
0765デフォルトの名無しさん
垢版 |
2020/04/25(土) 11:32:45.56ID:vRFirqtQ
>>763
アイドルの水着を脱がせたいのですが、これはどうでしょうか?
GTX10502GBはありますです
0767デフォルトの名無しさん
垢版 |
2020/04/25(土) 11:40:39.01ID:vRFirqtQ
ただ一人の水着脱がせる程度でも?
じゃあcolab使うしかないの?
0768デフォルトの名無しさん
垢版 |
2020/04/25(土) 11:54:33.16ID:RyJNrHEl
ひとりという単位で考えても仕様がない
学習量は識別精度のラインで決まる
画像認識なら判別できるかどうかとか
0769デフォルトの名無しさん
垢版 |
2020/04/25(土) 12:59:20.70ID:OXZXCSw6
>>767
学習完了したモデルがあって脱がせるだけなら十分だよ
学習からだったら厳しい
0770デフォルトの名無しさん
垢版 |
2020/04/25(土) 13:02:39.96ID:VdLGa5Mo
厳しいというか
エポックメイキングクラスの頭の良さじゃないと無理ゲーw
0771デフォルトの名無しさん
垢版 |
2020/04/25(土) 13:03:01.96ID:OXZXCSw6
こんな場所で聞く前にやってみればいい
メモリ不足になるか永遠に終わらないなら出来ないって事だから
0774デフォルトの名無しさん
垢版 |
2020/04/25(土) 13:27:26.09ID:YMQ7YzAs
コラは脳内でやりなさいな
自作コラがデジタル遺産になっちゃった時のことを想像してみなよ
0777デフォルトの名無しさん
垢版 |
2020/04/25(土) 14:46:29.51ID:vRFirqtQ
>>769
学習からだよ
0781デフォルトの名無しさん
垢版 |
2020/04/25(土) 17:01:19.15ID:VdLGa5Mo
何にでもパレオを着せちゃうアプリなりWebサなり作ったらおもしろいかなぁ・・・? (´n`)
0782デフォルトの名無しさん
垢版 |
2020/04/25(土) 17:36:29.11ID:vRFirqtQ
colabでやるしかないの?
0784デフォルトの名無しさん
垢版 |
2020/04/25(土) 18:03:40.19ID:vRFirqtQ
フェミキッも
0786デフォルトの名無しさん
垢版 |
2020/04/25(土) 20:32:33.61ID:E8KoCKl4
モダンなpythonのweb開発ってこんなんで合ってるか?
・fastapi
・uvicorn
・poetry

もっと強そうなのやってるってやついたら教えて
0788デフォルトの名無しさん
垢版 |
2020/04/26(日) 12:56:06.45ID:c8/CeCgn
強いかどうかは知らんけど
太そうではある
0794デフォルトの名無しさん
垢版 |
2020/04/26(日) 19:11:06.11ID:kwdN3Wnk
>>793
SQLAlchemyを使う前提ならSQLiteの型はあまり考慮しなくていい
Python側でTrue/Falseを使えばデータベース側はバックエンドに応じて適切に処置される
0795デフォルトの名無しさん
垢版 |
2020/04/26(日) 19:20:09.31ID:1kL3nhkt
>>794
サンクス
そうなんすね、こういうときにORMが力を発揮するんやね、今までなんのためにあるかようわからんかったけど
0797デフォルトの名無しさん
垢版 |
2020/04/26(日) 20:15:28.15ID:FVxXRtXH
ワードプレス案件とかあったとしても、コミュ力無いと無理だな
0800デフォルトの名無しさん
垢版 |
2020/04/27(月) 10:42:17.17ID:YGWMtg+u
SQL の文法に論理的 AND とか OR はあるのに
bit の AND / OR が無いのは不思議
0801デフォルトの名無しさん
垢版 |
2020/04/27(月) 11:35:17.94ID:NQjCQXX/
テーブルにビットフラグ入れる馬鹿を喜ばせるような機能を入れてはならない
0802デフォルトの名無しさん
垢版 |
2020/04/27(月) 18:29:48.11ID:5NBRtOT1
すみません。質問させていただきます。遷移して100件ほど取得後outputリストに入れて、pandasで確認してみたところ各100行ほどのデータが1つしか表示されず

item_urls = []
output = []
for _ in range(1):
res = get_html(url)
soup = bs(res.content, "html.parser")
item_urls += ["https://www.adkeiolm.com"; +item.find("a").get("href")for item in items]
url = "https://www.adkeiolmw.com"; + soup.find(class_="pager-next kjduaksi-as").find("a").get("href")
print(url)
time.sleep(5)


output.append({
"title":item.find(class_="items-box-name sevne-3").text,
"price":item.find(class_="items-box-price sevne-4").text,
"url": "https://www..com"; + item.find("a").get("href"),
"pictuers":item.find("img").get("kiad-src")
})


下のこの内包表記を使ったコードでは各100件ほど取得できているのですがタイトル1つに100件が入ってしまっていて100行にしたいのですが、1行に全て入ってしまっています。このデータを1つずつにするにはどうすれば良いのでしょうか?

output.append({
"title":[(item.find(class_="items-box-name sevne-3").text)for item in items],
"price":[(item.find(class_="items-box-price sevne-4").text)for item in items],
"url" :["https://www.adkeiolm.com"; +item.find("a").get("href")for item in items],
"pictuers":[item.find("img").get("kiad-src")for item in items]
})

内包表記の使い方が間違っていたり、質問が分かりにくいと思いますが教えていただければ幸いです。宜しくお願い致します。
0803デフォルトの名無しさん
垢版 |
2020/04/27(月) 19:40:02.10ID:gG8/Dj0p
>>802
内包表記が間違ってるんじゃなくてpandasのDataFrameへの突っ込み方が間違ってる
やるならこうかな

titles = []
prices = []
urls = []
pictures = []

と列に対応するリストを作った上で

titles.append(…)
prices.append(…)
urls.append(…)
pictures.append(…)

とそれぞれリストに追加して

df.DataFrame({
‘title’: titles,
‘price’: prices,
‘url’: urls,
‘picture’: pictures,
})

とやる

遅くていいならdf.append()やdf.assign()を使えばできるけど、上に示した方法のが速い
0805デフォルトの名無しさん
垢版 |
2020/04/27(月) 22:22:19.59ID:5NBRtOT1
>>803

別々にすることが出来ました。別々になったものを合わせて表示することもできるのでしょうか?
列ではなく行の表示にかわっていたり分からないことが多いので
pandasのこともっと調べてみようと思います。助かりました。ありがとうございます。
0806デフォルトの名無しさん
垢版 |
2020/04/28(火) 08:58:07.54ID:zAZN/f3s
馬鹿には無理
0807デフォルトの名無しさん
垢版 |
2020/04/28(火) 09:46:07.32ID:yTzcHMfY
pandasは可読性悪いし、スケールもしないってことはもっと知られてもよいと思うよ。
便利だとは思うけど。
0809デフォルトの名無しさん
垢版 |
2020/04/28(火) 11:39:40.63ID:NJdxwODR
たまにスクレイピングの質問の後に
馬鹿には無理の書き込みがあるけど
複雑なものを作るわけでもないスクレイピングやpandasなんてやってれば
馬鹿でもできるようになるだろ。
0811デフォルトの名無しさん
垢版 |
2020/04/28(火) 13:54:03.42ID:0b60T+Li
ffmpeg.exeを実行ファイルと別のフォルダに置きたい
pyinstallでexe化して人に渡すプログラムなんだけど、実行ファイル内でffmpeg.exeはここです というように指定できないのでしょうか
0814デフォルトの名無しさん
垢版 |
2020/04/28(火) 14:59:44.87ID:kB+BQSUv
Pythonで桁を揃えて出力したいのですが
C言語の(%桁数)みたいなのってありますか

C
printf("%3d",val);

Python
0816デフォルトの名無しさん
垢版 |
2020/04/28(火) 17:44:52.00ID:ZNkTbKCD
>>> val = 13.456
>>> f'{13.456:3.2f}'
'13.46'

>>> val = 13
>>> f'{13:3d}'
' 13'
0818デフォルトの名無しさん
垢版 |
2020/04/28(火) 18:35:50.20ID:kB+BQSUv
>>816 >>815
出来ました、ありがとうございます
0820デフォルトの名無しさん
垢版 |
2020/04/28(火) 23:24:44.87ID:7QVY/xgO
>>811
third party 製のライブラリを置くフォルダを作れば?

むしろ、実行ファイルと同じフォルダへ置くと、
もし、そのフォルダへパスを通す客がいた場合に、

ffmpeg.exe もグローバルに見つかってしまうから、
客が元から、ffmpeg.exeのフォルダへパスを通していた場合に、

パスの順序によっては、実行されるffmpeg.exeのバージョンが変わってしまう

Ruby ならコマンドプロンプトで、where ruby
と入力すると、C:\Ruby25-x64\bin\ruby.exe
このbin には、rspec など、多くのグローバルなコマンドが置いてある

where rspec
C:\Ruby25-x64\bin\rspec
C:\Ruby25-x64\bin\rspec.bat

一方、include, lib などは、そのパスに含まれないフォルダにある。
C:\Ruby25-x64\include
C:\Ruby25-x64\lib
0822デフォルトの名無しさん
垢版 |
2020/04/28(火) 23:48:05.10ID:5dLgSlfc
質問させてください。環境はVSCode、python3.8です。

はじめての Django アプリ作成、その 3¶
https://docs.djangoproject.com/ja/3.0/intro/tutorial03/
をやっているのですが、途中で出てくる

latest_question_list = Question.objects.order_by('-pub_date')[:5]
という部分の「objects」とは何なのでしょうか?

チュートリアルには説明がなく、定義へ移動も使えないため、調査が行き詰っています。
どうやらDB関連であることは分かったのですが、
詳しい説明があるページなどはないでしょうか?
0828デフォルトの名無しさん
垢版 |
2020/04/30(木) 12:33:07.17ID:0pNWuAUl
スケールさせたい場合はpandasよりもdaskのがいいらしい
大規模処理はPySparkしか使ったことないので詳細は分からない
速度が速いbaexというのもあるらしいが、こちらも未だ未検証
まだまだ勉強する事が多い
0830デフォルトの名無しさん
垢版 |
2020/04/30(木) 18:43:15.13ID:bJdEgVJ8
testString = "testabctesttestaaatest"
みたいな文字列があった場合、末尾のtestだけ削除して
testString = "testabctesttestaaa"
に置き換えるにはどうしたら良いですか?
0834デフォルトの名無しさん
垢版 |
2020/05/01(金) 03:19:08.64ID:lVYDVOrS
tkinterで開始ボタンと停止ボタンを作り、
開始ボタン押下でスレッドで処理開始、停止ボタン押下でスレッドを終了ということをやりたいです

ググった結果、グローバル変数でフラグ管理をしてスレッドを終了させるという手法を見つけたのですが
while True:
  処理A
  処理B
  処理C
  ...
こういった感じでスレッドが長めのwhileループをしており、
フラグ判定でスレッドを終了させるにはそこら中に判定文を仕込む必要がありそうであまりスマートに見えません
初のプログラム言語で何か見落としていそうなのですが、良い方法はないでしょうか
0835デフォルトの名無しさん
垢版 |
2020/05/01(金) 04:06:35.36ID:801cZcm3
最後に終了フラグ立ってるかどうかだけ調べる処理書いとけばいいんじゃねーの
0836デフォルトの名無しさん
垢版 |
2020/05/01(金) 05:38:07.01ID:qKDvLgNt
途中で安定的に止めるには、途中でフラグ見るしかなかろ。シグナル送るにしても、結局チェック要るんだから

あるいは
def call_func(call):
__check stop_flg()
__if call=1:
____処理内容関数1()
__elif call=2:
____処理内容関数2()
みたいな

俺は途中で止めるときはkillしたあとプロセスとqueue空にする過激派だからmultiprocess使う
0837デフォルトの名無しさん
垢版 |
2020/05/01(金) 06:44:00.02ID:pKAHvJ73
>>834
> 初のプログラム言語で何か見落としていそうなのですが、良い方法はないでしょうか
ないです

現状では、優先度 (priority)やスレッドグループがなく、スレッドの破壊 (destroy)、中断 (stop)、一時停止 (suspend)、復帰 (resume)、割り込み (interrupt) は行えません。
https://docs.python.org/ja/3/library/threading.html#threading.TIMEOUT_MAX
0838デフォルトの名無しさん
垢版 |
2020/05/01(金) 09:49:23.48ID:vI9DtzS8
subprocessって以前は破壊コマンドあったんだっけ?
いまはos.killするしかないのか
0839デフォルトの名無しさん
垢版 |
2020/05/01(金) 22:44:02.73ID:o7T99yl7
AAA,BBB,CCC
1,テスト,テスト
のようなウェブ上にある CSV を
csvfile = urllib.request.urlopen('<url>').read().decode('utf_8_sig')
reader = csv.reader(csvfile)
for row in reader:
  print(row)
みたいな感じで読むと、1文字ずつ取り出されてしまうようなんですが、
どういったところを疑えばよさそうですか?

CSV が1文字ずつ改行されているということもないですし、
ネットで探してもこんなことで困っているようなケースは見当たらないようですが…
0840デフォルトの名無しさん
垢版 |
2020/05/01(金) 22:59:44.37ID:xXuuls7c
>>839
csvfileって書いてるところがstrだからでしょ
for row in csv.reader(csv_string.splitlines()):
みたいにすればいいと思うよ
0842839
垢版 |
2020/05/01(金) 23:08:21.48ID:o7T99yl7
>>840-841
いけました!!!ありがとうございます!!!!!
0843デフォルトの名無しさん
垢版 |
2020/05/02(土) 06:15:56.07ID:9xJcUutm
>>839
csv.reader()の引数はイテレータである必要があり__next__()を呼び出して処理する
csvfileは文字列で__next__()を呼び出すと1文字ずつ返すからそうなってしまう
多分やりたいのは1行ずつ処理してほしいんだろうから
urllib.request.urlopen('<url>').read().decode('utf_8_sig').splitlines()
とかで行のリストにしてみたらいいかと
0844デフォルトの名無しさん
垢版 |
2020/05/02(土) 08:30:37.36ID:fH6yOmK2
# なんとなくread()するのがもったいないかんじもするので
with urllib.request.urlopen('<url>') as f: # byte stream
__tf = io.TextIOWrapper(f, newline='', encoding='utf-8')
__reader = csv.reader(tf) # text stream
__for row in reader:
____print(row)
0846デフォルトの名無しさん
垢版 |
2020/05/02(土) 10:57:38.88ID:KJskOYTt
Ruby では、CSV.foreach で、1行ずつ処理できる

require 'csv'

file_path = "input.csv"

CSV.foreach( file_path ) do |row| # 1行ずつ処理
puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end

出力
あ : いう
a : bc
0847デフォルトの名無しさん
垢版 |
2020/05/02(土) 16:22:53.97ID:/lhI8m4i
>>846
844のコードで何が書いてあるかさえ理解できないの?
ほんとにrubyしかわからないんだな。毎日毎日別言語のスレに見当違いのrubyのコード書いて、無職でrubyでちょっとしたコードが書けることが唯一の誇りなのかな…?
0848デフォルトの名無しさん
垢版 |
2020/05/02(土) 16:38:30.35ID:5EdNFNFK
でもなあ>>843みたいに既に回答されてる内容をさも意味があるかのようにただ繰り返すだけのやつよりはまだいいと思うぞ
0849843
垢版 |
2020/05/02(土) 17:01:49.85ID:fZ0Wf7vj
>>848
リロードしてなくて被っただけ
アンカー見たらわかると思うんだが

>>847
ルビ厨の相手するなよ…
0850デフォルトの名無しさん
垢版 |
2020/05/03(日) 12:24:37.87ID:zajIy9nA
ここまで平常運転
■ このスレッドは過去ログ倉庫に格納されています

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