X



Pythonのお勉強 Part61

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2019/07/20(土) 20:39:44.69ID:P9wbpcK8
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

◆エラーを解決したいときはエラー表示(勝手に省略禁止)と
 環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書く

◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
  ↓にあげてるような、ソースコードうp用サイトに貼ってきてくだしあ
    (スクリーンショットをimgur等にうpる「横着」禁止)
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)

◇Pythonオフィシャルサイト
http://www.python.org/

◇まとめwiki
ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/

〇前スレ
Pythonのお勉強 Part60
http://mevius.5ch.net/test/read.cgi/tech/1556580863/

次スレの建立は>>985が挑戦する。 [EOF]
0064デフォルトの名無しさん
垢版 |
2019/07/26(金) 06:50:24.62ID:yP+SExj8
pytorchかんたんですか?
初心者向けのサイトないのだけおd
0065デフォルトの名無しさん
垢版 |
2019/07/26(金) 08:34:27.93ID:3YrBEHpG
webスクレイピングで
過去ログ一覧からスタート→リンクを踏んでその過去ログ内のレスを取得→一覧に戻る→次のリンクを踏んでレスを取得→…
って流れのプログラムってどう書いたらいいですか?

find_allでaタグ抽出してgetでURLのみ抽出するところまではできたのですが、そこからが全くわからないです…
ググっても全然出てこないし
0066デフォルトの名無しさん
垢版 |
2019/07/26(金) 08:35:34.79ID:3YrBEHpG
過去ログ一覧からスタート→リンクを踏んでそのスレ内のレスを取得→一覧に戻る→次のリンクを踏んでレスを取得→…
の流れです
0068デフォルトの名無しさん
垢版 |
2019/07/26(金) 09:24:55.26ID:1q4vGLdK
ってか、どうググったのか言ってみろよw
>67氏も書いてるけどurl requestしてbs4で解析の繰り返しだけだぞ
Python以前にその検索下手の方が心配だわ
0069デフォルトの名無しさん
垢版 |
2019/07/26(金) 09:26:45.10ID:54Ib42km
Ruby, Selenium WebDriver なら、
execute_script で、JavaScritp も実行できる!

driver.execute_script( "window.open()" ) # 新しいタブを開く
# 上で最後に開いた、新しいタブへ移動する
driver.switch_to.window( driver.window_handles.last )

url = "どこかのURL"
driver.navigate.to url
0072デフォルトの名無しさん
垢版 |
2019/07/26(金) 12:08:13.62ID:9mYOuHkF
2chというか5chのスクレイピングは面倒くさい
0074デフォルトの名無しさん
垢版 |
2019/07/26(金) 12:47:41.65ID:54Ib42km
5ch は、空のHTML を送ってきてから、Ajax でサーバーから内容を取得するから、
普通にスクレイピングすると、内容が空になる

Selenium WebDriver を使うか、wait するか、しないといけない。
また、板・サーバーによって、2つの形式があるのも面倒

VBS スレのピッコロ大魔王は、PowerShell でスクレイピングしてたほどの猛者w
0078デフォルトの名無しさん
垢版 |
2019/07/26(金) 14:15:46.34ID:GqmzmQoS
>>76
一般人には理解できない行動原理で動いているのだろう。会話しても通じない相手だし。
0079デフォルトの名無しさん
垢版 |
2019/07/26(金) 18:49:31.00ID:4SBlOZ7x
すいませんループで回せばいいだけだったことに気づきました
しょうもない質問してすいませんでした
0080デフォルトの名無しさん
垢版 |
2019/07/27(土) 00:19:00.87ID:IAMnQoWj
>>63
普段bashで色々やるなら、本当にJupyter/Pythonはオススメ。
Jupyter上でコマンドを直接叩いて確かめたりすることもできるし(!を頭につけたらシェルに渡される)、
Pythonから外部コマンドを叩くのも慣れてしまえばそこまで大変でもない。

空白とか特殊文字とかの扱いや、簡単な数値計算がとにかく素直なので、$( )とか$(( ))とかが多用されてたり
bc叩いてたりするようなのはPython(でも他のLL言語でもなんでもいいんだけど)にしたほうが簡単な場合が多いと思う。
まぁ昔のPerlの立ち位置ですね。
0082デフォルトの名無しさん
垢版 |
2019/07/27(土) 10:01:42.55ID:yKuZ7Tou
例えばwebサービス作りたいならそうだし、機械学習やりたいならそうではない
0083デフォルトの名無しさん
垢版 |
2019/07/27(土) 10:05:30.79ID:KfeUqeFf
おまいのゴールは何よ
0084デフォルトの名無しさん
垢版 |
2019/07/27(土) 10:28:41.32ID:Bsv32qGp
出力結果が異なるのはなんで?
clearメソッドを使って辞書データを削除したものを出力してみるとNoneとなり、
削除された辞書を改めて出力してみると{}になっている。

dict_oppai = {"貧乳": "(´Д`)", "巨乳": "(゚∀゚*)"}
print(dict_oppai.clear()) # 出力結果…None
print(dict_oppai) # 出力結果…{}
0087デフォルトの名無しさん
垢版 |
2019/07/27(土) 11:17:36.80ID:aGCJYq8l
>>82 >>83
人工知能に興味はあって何かしら関わりたいですが、数学とかの知識がまだないので、Pythonを使いWebサービスとかを通して知識を深めつつ、機械学習とかのジャンルにも携われるようになりたいです。
と考えてるのですがこの考えはあっていますかね。
0088デフォルトの名無しさん
垢版 |
2019/07/27(土) 11:53:49.39ID:x2CgWL9F
>>87
Webサービスとかを通して知識を深めつつ
↓↑ 別に関連してる必要ないぞ 両方やると普通に倍大変なだけ
機械学習とかのジャンルにも携われるようになりたい
0089デフォルトの名無しさん
垢版 |
2019/07/27(土) 12:04:19.43ID:x2CgWL9F
人工知能(≒機械学習)って、
数学に詳しい必要ないのがでっかいメリットの1つだと思うんだが。
0090デフォルトの名無しさん
垢版 |
2019/07/27(土) 12:08:31.22ID:Bsv32qGp
>>85-86
初期化したオブジェクト自身を返す__iter__メソッドのことを考えてた後だから、メソッドのことを何か思い違いしてたわ。
メソッドの大半はオブジェクトを弄るだけで、メソッド自体は何も返さないことがむしろ多いんだったな。
0091デフォルトの名無しさん
垢版 |
2019/07/27(土) 12:12:26.34ID:8koxHvvq
>>87
必要な数学の知識ないといくらWebサービスの勉強したところでどうにもならんぞ
むしろ、その数学を学べるところに身を置いた方が結局は近道なのでは
0092デフォルトの名無しさん
垢版 |
2019/07/27(土) 12:13:23.42ID:aGCJYq8l
ただPythonやればどっちにもいけるし、成長を感じやすいのはWebサービスかなと思いました。
人工知能に関わるには、線形代数 統計 微分積分とかを理解してないとダメとネットで見たのですが!
人工知能と機械学習を一緒に考えてるのがダメ?
0094デフォルトの名無しさん
垢版 |
2019/07/27(土) 12:27:22.57ID:x2CgWL9F
>>92
世の中には虻蜂取らずとか二兎を追う者は一兎をも得ずとかいろいろあってな...

>成長を感じやすいのはWebサービス
そう思うのを止めはしないが、
機械学習そのものに対しては何の足しにもならんといっておくぞ

>ネットで見たのですが!
高校レベル数学がアッパラピョーンで勉強やり直す必要があるなら下の順。
1)微分積分:積分より微分のほうがずっと大事。ようするに「回帰」につかうやつらを勉強しる。
2)線形代数:行列&ベクトルのあたりを理解してればよく、手計算できるようになる必要性はない
3)統計:わかっとけ。望ましくはここだけは大学教科書もクリアしとけ。
     わかるためには、上二つをある程度クリアしてないと、難しいけどな!

>人工知能と機械学習を一緒に考えてるのがダメ?
ほぼほぼいっしょだぞ
「≒」が「ほぼいっしょ」っていう意味の記号だって知らないのは
算数的にどうかと思うぞ
0095デフォルトの名無しさん
垢版 |
2019/07/27(土) 12:37:53.06ID:x2CgWL9F
>>93
…('A`)… よし、行きたい国でつかわれてる言語の能力は全く問題ないとして、だ。

IT系とひとくちにいっても仕事はいろいろある。

法務部でもいいからIT系会社かつ海外にあるとこで働きたい!ってんなら
まず日本の商法とかIT知財系のエキスパートになって
かつ
ターゲット国の商習慣法律に精通するのが
効率的ルートなわけで。


プログラム書く部分のいわゆるIT奴隷労働力採取地は
近頃日本国内じゃなく
東南アジア諸国にどんどん移動している。
たぶん
最上流工程以外はみーんな海外へアウトソーシング()になっちゃう時代が
いっぺんくるんじゃね? くらいの危機感を抱いている。


猫も杓子もPythonでAIワッショイ★バブルがはじけるまえに果たして
コンスタントに金もらえるようになるレベルまで自分が勉強を終えることができるか?
とか
考えた方がいいぞ。
0097デフォルトの名無しさん
垢版 |
2019/07/27(土) 13:59:37.77ID:aGCJYq8l
アッパラピョーンって初めて聞きました。
Webサービスの方向でPythonを勉強し、Pythonを使えるようになれば機械学習の時にもPythonを使えるのかと思ったのですが…
正直数学はアッパラピャーンなのでそこも勉強し直す必要がありますね…
最近人工知能についての本を読んで、とても面白くて興味を持ってはいたのですが…
そもそもPythonが需要あるのは人工知能関連のおかげみたいな認識なのですが、人工知能路線を捨てるとして、PythonでWebサービス路線は需要とかはありますか?
勉強期間とお金を貯めるので2、3年を費やそうと思ってるのですが、2、3年後でも需要あるのだろうか…

長文すみません
0099デフォルトの名無しさん
垢版 |
2019/07/27(土) 14:42:26.66ID:x2CgWL9F
>>97
>アッパラピョーン
Don't think, feel!

>PythonでWebサービス路線
Webサービス界隈においてPythonおkな鯖っちゅーのがそもそもなかなかなくってな・・・
(だが皆無というわけではないので)
人工知能をマスターした後、
全部を自分で準備してWebサービス化したいとなったら
その際はじめてセッティング方法等を覚える くらいでおk。
ぶっちゃけ現在は「鯖の中のPython」のバージョンの端境期なので。

Webサービスのほうが好きで、人工知能は正直流行だから程度の興味度合なら
最初に学ぶプログラミング言語っぽいものとしては中毒性(ユルさ)が高すぎ?てアレだとは思うんだが、そんでも
需要的に
>>98がすすめてるPHPのほうが圧倒的にベター。

>勉強期間とお金
今は、初歩の勉強にはネットさえあればよく
ちょこっと実行してみよう程度ならAIでさえ家庭用PCで事足りる時代なんだが。

>需要
個人的には、
3年後には猫も杓子もAIにする必要なんてないと
世の中にバレる気がしている。
0101デフォルトの名無しさん
垢版 |
2019/07/27(土) 14:51:37.97ID:x2CgWL9F
そんなわけで
「Pythonで機械学習」をマスターするのに必要な数学力 についての話は
ギリギリこのスレでもいいとおもうが

プログラマーになって海外で働くためにはどうしたらいいのか についての続きは
プログラマー板(通称「マ板」)でおk! http://medaka.5ch.net/prog/
0105デフォルトの名無しさん
垢版 |
2019/07/28(日) 00:46:58.61ID:LPR+u+AV
AI・Web サービスは、全く分野が異なる

AI は大学院以上

一方、Webサービスは、Ruby。
Amazon, Google, Heroku などのクラウドでも、Ruby
(書き込めないので、全角に変換した)

HTML, CSS/SASS, JavaScript, jQuery, Bootstrap, Vue.js, Node.js, VSCode など

Linux の基本コマンド、シェルスクリプト、sed, awk,
Windows のPowerShell

環境構築運用では、vagrant, chef, docker, kubernetes

Linux 資格のLinuc と、Rubyの、Sinatra, Rails だけでも、1年以上掛かる!
0106デフォルトの名無しさん
垢版 |
2019/07/28(日) 01:10:39.45ID:O6J4gSKO
>>103
どうみても手遅れですあきらめろん
0109デフォルトの名無しさん
垢版 |
2019/07/28(日) 01:47:48.88ID:vgSy3qH0
PythonでWebサービスは規模にもよるだろうけどそんなに国内じゃ需要なさそう。
ていうか、PHPのLaravelとかRubyのRailsとか使えてたらはじめは多少の違いに
戸惑うだろうけどDjangoでもFlaskでも使えるよ。
あと、Webサービスを作ってもAIに必要な数学の知識は全く身に付かないし。

最終的にAIに携わりたいんだったら、何でもい作って独自のカテゴリを判断する識別機とか
作ってアピールしたほうがいい感じがするけどなぁ。10種類ぐらいを学習データにして、
コンビニ弁当写真を撮影したらどのコンビニ弁当とか当てるとか。
0110デフォルトの名無しさん
垢版 |
2019/07/28(日) 02:04:19.32ID:O6J4gSKO
>>107
perlなんてオワコン
rubyも今からやっても無駄
0111105
垢版 |
2019/07/28(日) 02:55:45.60ID:LPR+u+AV
たぶん、perl は、Amazon, Google, Heroku などのクラウドで、採用されていないだろ

書き込めないので、全角に変換した
0115デフォルトの名無しさん
垢版 |
2019/07/28(日) 16:42:34.95ID:7l7J8MNU
perlは、言語というより、
awkやsedに代わる置換ツールとして、
生き残ると思うわ
011685
垢版 |
2019/07/28(日) 16:54:39.14ID:js6qDgTc
人に言っときながら昨日の今日でtdls=list(set(tdls)).sort()とかやってた
おかしいからなんで…?と思って調べて愕然とした

sort()が返すのはNoneなので注意

昨日のやつやん…
なんというか無意識に結合してしまう癖
0117デフォルトの名無しさん
垢版 |
2019/07/28(日) 17:29:28.57ID:9GsZ0ZbO
pythonあるあるやね
ほかの言語みたいについついメソッドチェーンしてしまう
0118デフォルトの名無しさん
垢版 |
2019/07/28(日) 17:42:46.60ID:vVcoZhhi
perl久しく触ってないな…
awsやsedで出来ることはbash絡めたawkやsedで全然問題無いし
もうちょっとなんかやろうとするなら、それこそPython使っちゃう
0119デフォルトの名無しさん
垢版 |
2019/07/28(日) 17:59:37.31ID:7l7J8MNU
ワンライナーだと、perlのほうが使える表現多いし、いろいろ楽だけど、
sedでまぁ困ることはないし、
windowsでもいざとなればbusybox(超軽量)でsedが使えるからな。
0120デフォルトの名無しさん
垢版 |
2019/07/28(日) 18:24:08.80ID:PtLDxnlg
>>116
おまいは+byのやりすぎ
反省汁
0121デフォルトの名無しさん
垢版 |
2019/07/28(日) 21:10:22.26ID:mOcFR82C
Cにおいてprintfの戻り値は文字数
perlのchompは0か1
sortして帰ってくるのはソート済みリスト……なワケは無い、というのが界隈での常識
0122デフォルトの名無しさん
垢版 |
2019/07/28(日) 22:50:37.97ID:BqIcDQKz
[1,3,8,7,4].sort()はNoneなのは理解したけど
l = [1,3,8,7,4]
l.sort()
print(l)
が機能するのは理解できません(><)
0124デフォルトの名無しさん
垢版 |
2019/07/28(日) 23:22:08.53ID:ByKPbBf7
>>122
さよか
sortについての公式ドキュメントとかをもっと嫁
あるいは↓とかで分かるかもしんないかもしんない

l = [1,3,8,7,4]
hoge=l.sort()
print(hoge)
print(l)
0125デフォルトの名無しさん
垢版 |
2019/07/28(日) 23:44:25.07ID:gfQ3372n
>>122
l.sort()は元の配列を変化させる(破壊的メソッド)
sorted(l)はソート済みの新しいリストを返し、lは変化させない
0126デフォルトの名無しさん
垢版 |
2019/07/28(日) 23:52:31.19ID:bwaV1/MZ
すみません、numbersはリスト[5,5,5,4,4,4,1,3,9]で最頻値を求めるプログラムの一部なのですが、
(最頻値は5と4の3つで、)
def calculate_mode(numbers):

c = Counter(numbers)
numbers_freq = c.most_common()
max_count = numbers_freq[0][1]

modes = []
for num in numbers_freq:
if num[0] == max_count:
modes.append(num[0])
return modes
そうだとして、if num[0] == max_count:のループの動きが追えなくて困ってます・・。
max_countには3が入っていると思うのですが、num[1]はどういう動きになってるのでしょうか。
分かる人がいましたらどなたかお願いします
0127デフォルトの名無しさん
垢版 |
2019/07/29(月) 01:11:58.49ID:DGyBGDKN
>>> numbers = [5,5,5,4,4,4,1,3,9]
>>> c = collections.Counter(numbers)
>>> c
Counter({5: 3, 4: 3, 1: 1, 3: 1, 9: 1})
>>> numbers_freq
[(5, 3), (4, 3), (1, 1), (3, 1), (9, 1)]

if num[1] == max_count:
にする必要があるんじゃないの?
for num in numbers_freq:
 if num[0] == max_count:
って、
for i in range(0, len(numbers_freq):
 if numbers_freq[i][0] == numbers_freq[i][1]:
って書いてるのと同じだよ
0128デフォルトの名無しさん
垢版 |
2019/07/29(月) 11:33:47.96ID:HGKd4aYw
ここまで
sorted
なし
0134デフォルトの名無しさん
垢版 |
2019/07/29(月) 22:57:19.85ID:SxZ8m4rY
>>127
ありがとうございます!if num[0] == max_countは[1]のミスですが、
リストの動きが分かる説明で助かりました!
0135デフォルトの名無しさん
垢版 |
2019/07/29(月) 23:52:32.03ID:SxZ8m4rY
>>127
あ、すみません、if num[1] == max_count: でやった場合、
for i in range(0, len(numbers_freq):
 if numbers_freq[0][i] == numbers_freq[i][1]:
という解釈になるんですかね?わかってなくてすみません・・
0136デフォルトの名無しさん
垢版 |
2019/07/30(火) 00:57:37.90ID:ZDjzCSg/
>>133
グロ
0137デフォルトの名無しさん
垢版 |
2019/07/30(火) 01:53:01.18ID:5N+QzfPd
pythonのforとwhileにelseがあるっていいよな
ループ終わったら実行されてbreakで実行されない
elseでローカル変数触れるっていう
0138デフォルトの名無しさん
垢版 |
2019/07/30(火) 04:06:01.65ID:RYwsY7rK
first, finally でループ前後の処理書けたら
もっとループ1組のまとまりとして読みやすい気がする
0140デフォルトの名無しさん
垢版 |
2019/07/30(火) 11:58:45.29ID:yTcwPjwU
class Manko():
def __init__(self,shape):
self.shape = shape

def onani(self):
print("クチュクチュクチュクチュイクーーーーー")
0141デフォルトの名無しさん
垢版 |
2019/07/30(火) 11:59:21.20ID:yTcwPjwU
class Manko():
 def __init__(self,shape):
  self.shape = shape

 def onani(self):
  print("クチュクチュクチュクチュイクーーーーー")
0143デフォルトの名無しさん
垢版 |
2019/07/30(火) 15:01:30.05ID:EWMX2X3b
classの定義が
class xxx:とclass xxx():でどちらでも大丈夫だけど
両者に何か違いってあるんですか?
0144デフォルトの名無しさん
垢版 |
2019/07/30(火) 15:34:10.97ID:zpGp8UiP
>>143
()つきの方だとスーパークラスを指定して
継承できるんじゃね?

()がない方だとデフォルトのクラスを継承すると思う
0146デフォルトの名無しさん
垢版 |
2019/07/31(水) 15:05:51.12ID:uFs1XaF2
pip-review
0150デフォルトの名無しさん
垢版 |
2019/08/01(木) 18:20:29.83ID:QWiBhMHl
妹とPython

に見えた
0153デフォルトの名無しさん
垢版 |
2019/08/02(金) 01:58:28.53ID:DJ812CMs
>>135
ならない
for num in numbers_freq:
ってのは、
for i in range(0, len(numbers_freq):
 num = numbers_freq[i]
と同じ
なので、
for num in numbers_freq:
 if num[1] == max_count:
は、(num in numbers_freqをi in rangeとnum=numbers_freq[i]に書き換え)
for i in range(0, len(numbers_freq):
 num = numbers_freq[i]
 if num[1] == max_count:
となり、(num[1]をnumbers_freq{i]に書き換え)となり、
for i in range(0, len(numbers_freq):
 if numbers_freq[i][1] == max_count:
となり、(max_countをnumbers_freq[0][1]に書き換え)
for i in range(0, len(numbers_freq):
 if numbers_freq[i][1] == numbers_freq[0][1]:
にならなくない?

二次元配列(この場合はタプルのリストっぽいけど)がよくわかってないようなので、REPLでよく確認しながらコードを書いてみてはどうだろうか。
0154デフォルトの名無しさん
垢版 |
2019/08/03(土) 10:50:58.58ID:UARtC+3c
pytorchってなにからやればいいの(´;ω;`)
むずすぎて分からん
0155デフォルトの名無しさん
垢版 |
2019/08/03(土) 10:55:14.79ID:h4N+FiTW
何からやればいいって何をやろうとしてるんだよ
やろうとしてることをやればいいだろ?
馬鹿が
0156デフォルトの名無しさん
垢版 |
2019/08/03(土) 12:36:50.85ID:7SLV+EmK
チュートリアルあるやろ
0157デフォルトの名無しさん
垢版 |
2019/08/03(土) 14:58:08.25ID:ADkpYMPv
ユーザーに10個の数字を入れさせて、
その中から一番大きい奇数を表示させるプログラムを書いたのだけど、何がエラーなのかわかりません。よろしくお願いいたします。

t = 0
nums = []
big_odd_num = null
while (t < 10):
nums.append(int(input('Input number :'))
t = t + 1

for n in nums:
if n % 2 != 0:
if big_odd_num < n:
big_num = n

if big_num == null:
print('no big_odd_num')
0158デフォルトの名無しさん
垢版 |
2019/08/03(土) 15:32:23.81ID:ADkpYMPv
全くわからんと思ってたら、上のは)が一つ足りませんでした。
一応、以下のように手直ししました。ご指摘あればお願いします。
t = 0
nums = []
big_odd_num = None

while(t < 10):
nums.append(int(input('Input number :')))
t = t + 1

for n in nums:
if n % 2 != 0:
if big_odd_num == None:
big_odd_num = n

if big_odd_num < n:
big_odd_num = n

if big_odd_num == None:
print('no big_odd_num')
else:
print(big_odd_num)
■ このスレッドは過去ログ倉庫に格納されています

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