◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
Pythonのお勉強 Part57 ->画像>10枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1529888279/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,__ | >>1がロリコンで捕まりますように……
/ ./\ \_______________
/ ./( ・ ).\ o〇 ヾ!;;;::iii|//"
/_____/ .(´ー`) ,\ ∧∧ |;;;;::iii|/゙
 ̄|| || || ||. |っ¢..|| ̄ (,, ) ナモナモ |;;;;::iii|
|| || || ||./,,, |ゝ iii~ ⊂ ヾwwwjjrjww!;;;;::iii|jwjjrjww〃
| ̄ ̄ ̄|~~凸( ̄)凸 ( ,,)〜 wjwjjrj从jwwjwjjrj从jr コメントアウトするときに、"# "を行頭に挿入してくれるIDEは無いのかな。
どちらかと言うと軽量なIDLE、Pythonwin、PyScriptあたりは、"##"を行頭に挿入してしまい、変更設定もないんだよなぁ。
PyCharmはできるみたいだけど、他にはある?
他人が書いたテキストファイルから必要な行だけ抜き出そうとしたら
ファイルのほうの書式ミスだの誤植だのでうまくいかなかったときの悲しみ
scrapyで1分毎に1度アクセスしてスクレイピングをしたいのですが
毎回起動すると巡回するまでに時間がかかります
ですので起動しっぱなしで巡回させたいのですがどのようにしたらいいのでしょうか
spider内でsleepしたりもしたんですがアイテムの処理まで止まってしまいダメでした
ありがとうございます
reactorの仕組みが理解できてないんですけど
.run()をループ内に入れると失敗するので以下のようにしたのですが
spiderの__init__は実行されてるのですがリクエストは実行されず最後にまとめてされてるみたいです
(この場合3分後に)
https://pastebin.com/6tvdPRnL 出力
__INIT__
__INIT__
__INIT__
start_requests
start_requests
start_requests
request:
https://www.yahoo.co.jp/ request:
https://www.yahoo.co.jp/ request:
https://www.yahoo.co.jp/ とりあえずProcessを作りその中で実行するようにしました
コマンドだと10秒ぐらい掛かってましたがscriptから実行すると3秒ほどに短縮できたので!
>>10 大幅な手直しの時には、さすがにそんなことやってられないでしょう。
対応していれば、行選択してショートカットキーで一発なんだから。
前スレ978です
お礼が大変遅くなって申し訳ありませんでした
すすめていただいた本をまずは書店で見てきたいと思います
ありがとうございました
>>8 jupiterとvscodeならctrl+/で行頭に#入れてくれたと思う
vimならマクロ設定して@@でいける はいっ、vimの勝ちーー!
pythonだとデータサイエンス屋さん以外でまともな人はたいていemacsかvim
ctrl+/ -> 2ストローク
esc @ @ -> 3ストローク
ダメじゃん
vimなら ^, ctrl+V, jjjjj, I, #, esc が普通じゃない?
トリプルクォートで文字列化
さっさと修正したらバッサリ削除してコミット。
numpyってstrからastypeで変換できないんだな
>>12 1分に1アクセスならDOWNLOAD_DELAY=60だろ
1分ごとに全部クロールならCrawlerProcess使え
scrapy使い結構いるのかな? 私はrequestsでアクセスして正規表現でデータ抽出ですわ
>>27 np.array(list('hoge'), astype='uint8')
>>29 scrapyめんどいな、xpathとかなんやねん?
性器表現もだるいだろ
結論
ビューティフォースープ最高!
BeautifulSoupのパーサーにhtml5lib(1.0.1)使ってますが、
先頭に空のコメントがあると見つからずNoneになるのですが、
これっておかしいですよね?lxmlとhtml.parserは問題ないのに
soup = BeautifulSoup('''<div></div>''', 'html5lib')
print(soup.div) # <div></div>
soup = BeautifulSoup('''<!----><div></div>''', 'html5lib')
print(soup.div) # None
soup = BeautifulSoup('''<!--コメント--><div></div>''', 'html5lib')
print(soup.div) # <div></div>
soup = BeautifulSoup('''<!-- --><div></div>''', 'html5lib')
は?
re.search(r'(<[^<>!-]+>)+', s).group()
ひ?
jQuery では、CSS セレクター。
Ruby のNokogiri では、CSS セレクター・XPath
ちなみに、Chrome で、XPathを取り出せるから、
それを、CSSセレクターに直せばよい
XPath では、[1] とか、順番で表示されるから、
順番が変わると取得できないので、CSSセレクターの方が良い
正規表現は、木構造に対応していない
<1><2></2><3></3></1>
これで、<1></2> が対応してしまう。
</1>よりも先に、</2>が見つかるから
エロ画像を取得するために
木構造を解析するんだヴォケ
初心者なんだけど、「パーフェクトパイソンPython」で書いてあるコードがPython 3.7で動かないのは、書籍が古すぎってことでいいのか?
まともな本なら動作確認されてるバージョンがあるからそれ使えよ
なんで3.7使うの?
それが新しいからさ
とりあえず3.3で試してみる
ありがと
エロ画像 キボンヌに正規表現使わなかった。
https://ideone.com/hikEa4 linuxコマンドのwgetをwinコマンドかosモジュールで置き換えたら使える。
imgのsrcはサムネ画像の場合があるからhrefから取らないとダメだよ ( ´,_ゝ`)プッ
そんじゃ次は
クッキーやリファラに対応してみようか
Python3.5を使っています。
普段はbashでプログラミングをしているのですが、Python(3)にはいわゆる「正規表現演算子」はないのでしょうか。
'a' =~ '[abc]+'
にTrueを返し
'd' =~ '[abc]+'
にFalseを返すような演算子です。
if文で使われているようなのですが、==演算子のように直には使えないのでしょうか?
>>53 正規表現を全く必要としないアプリケーションも存在します、そのためそれらを含めて言語仕様を無駄に大きくする必要はありません
と言うことなので諦めてください
https://docs.python.jp/3/howto/regex.html#compiling-regular-expressions >>53 正規表現にマッチしたらtrue しなかったらfalseを返してほしいなら
re module のre.matchのマッチオブジェクトをifの後にぶっこめばマッチすればtrueしなければnoneが返ってfalseになるよ
>>58 ごめんなさい。もうちょっと詳しく書いてもらってもいいですか。
できることならサンプルもちょろっといただけると嬉しいです。
う〜ん。演算子を自分で作れたら嬉しいんですけどね……。
頼む! 助けてくれ!!
キーボードを、
エレコム ワイヤレスキーボード 静音タイプ メンブレン式 コンパクト ブラック TK-FDM078TBK
に変えたんだが、EnterとBackSpaceが押し難い。
どうしたら、良いんだ?
キーの割り当て変えるツールで押しやすいキーと入れ替えれば当座はしのげるだろ
Firefoxのショートカット多様するから入れ替えるキーが思いつかん。
そのうち慣れるよ、嫌なら他のキーボード買えばいいじゃん
押しやすいキーと入れ替えるという発想が信じられん バカなの?
コンパクトで良いなー。と、思って買ったばかり何だよ。
スペース左側の変換をエンターにして、
カタカナひらがな の場所をバックスぺーすにした。
enumerateとzipの合わせ技、快適すぎるw
range使ってインデックス作成していたのがアホみたい
if num[temp] >0:
for i in range(result[temp]):
hoge1, hoge2 = hogehoge(a, b, c[temp])
result2 = hogex(d, hoge1, hoge2)
このようなループ処理を複数回(result回数分)行いたいです
多重forで書くととても重くなってしまうと思うのですが、何か良い高速化手法は無いですかね?
a, b, dは定数
cはリスト
hoge1, hoge2はint型の変数です
繰り返しhoge1、hoge2、result2に計算結果を書き込んでいるだけなのであれば、最後のただ1度だけ計算すればよいのでは?
質問は正確にー
iがfor内部で使われてないように見えるから多分何かしら誤植があるんだろうけど
これだったら内包表記で書けるだろ
根本的に高速化するなら行列形式で書くしかないけどな
>>> num = [-3, -2, -1, 0, 1, 2, 3]
>>> result=[i+1 for i in num]
>>> d = 3
>>> c = [i+10 for i in num]
>>> b = 2
>>> a = 1
>>>
>>> def hogehoge(a, b, c):
return a+b, b+c
>>> def hogex(a, b, c):
return a+b+c
>>>
>>> l = []
>>> for temp in range(len(num)):
if num[temp] > 0:
for i in range(result[temp]):
hoge1, hoge2 = hogehoge(a, b, c[temp])
result2 = hogex(d, hoge1, hoge2)
l.append(result2)
>>> l
[19, 19, 20, 20, 20, 21, 21, 21, 21]
>>>
>>>
>>> [hogex(d, *hogehoge(a, b, c[temp])) for temp in [temp for temp in range(len(num)) if num[temp]>0] for i in range(result[temp])]
[19, 19, 20, 20, 20, 21, 21, 21, 21]
>>>
すみません間違えていました
正確に言うと、hogehogeでなんらかの座標を算出して、hogexでopencvで図形をimgに描画
これをhpgehpgeの入力を順番に変えて数回ほど繰り返したいです
for i in range(max)
if temp[i].size:
for j in range(temp[i]):
hoge1, hoge2 = hogehoge(a, b, result[i][j])
img = cv2.hogex(d, hoge1, hoge2)
リストに出力しない場合は内包表記使えないですかね?
イマイチ内包表記の事分かってないです
それ支配的なのはhogexやhogehogeだよね?
ボトルネックを見つけないと高速化の意味ないよ
hpgehpgeはどこにあるの?
あと5chだと半角スペースが消えるから全角スペースでインデント表現しないと
リストに出力しようがしまいが内包表記は使えるよ
>>> [print('hoge') for i in range(3)]
hoge
hoge
hoge
[None, None, None]
>>>
リストに出力しなかったらNoneが入るだけ
[cv2.hogex(d, *hogehoge(a, b, reault[i][j])) for i in [i for i in range(max) if temp[i].size] for j in range(temp[i])]
これでいけるんじゃないかな?
ありがとございます
アドバイスを参考に試行錯誤してたのですがちょっと自分には難しかったです
img = cv2.hogex(img, d, hoge1, hoge2)
imgという変数(画像)が既に存在する際にそれの上に何かを描画する関数なのですが、
内包表記の中でimgに代入させるのは難しいですかね?
あと、内包表記で複数個の処理を行うことって出来ますか?
感覚的にはこの様な感じです
[hogehoge(a, b), hogex(c, d, e) for i in range(num)]
条件を後から追加すんなー。
後、得たい結果がリストでないと内包表記じゃ早くならんよ?
自作関数じゃないhogexは晒してもいいだろうに
そんなことしてると誰も答えなくなる
そう言って答えなくなったためしはない
承認欲求過多のボウフラは次々に湧く
>>88 >内包表記の中でimgに代入させるのは難しいですかね?
内包表記の中で代入はできません、どうしてもやりたいならクラスで
>>> class fuga:
def __init__(self):
self.img = 0
def hogex(self, a, b, c):
self.img = cv2.hogex(self.img, a, b, c)
return self.img
>>> f = fuga() #インスタンス作って、これを使う
[f.hogex(d, *hogehoge(a, b, reault[i][j])) for i in [i for i in range(max) if temp[i].size] for j in range(temp[i])]
>あと、内包表記で複数個の処理を行うことって出来ますか?
タプルかリストにまとめれば複数個処理できますよ
>>> [(print('hoge'), print('fuga')) for i in range(3)]
hoge
fuga
hoge
fuga
hoge
fuga
[(None, None), (None, None), (None, None)]
>>> class fuga:
def __init__(self):
self.img = 0
def hogex(self, a, b, c):
self.img = cv2.hogex(self.img, a, b, c)
return self.img
hogehogeかhogexがボトルネックになってたらループをどうこうしても早くならないよ。
高速化するならまずボトルネックを特定しよう。
hogehogeやhogexがボトルネックで並列処理可能ならマルチスレッドで実行すれば少し早くなるかもね。
そもそもpythonみたいな実行速度よりコードの書きやすさを重視した言語で高速化するのは大変だよ。
pythonにちゃんとしたプロファイラーとかあるの?
プログラム内の各関数の実行時間を計って、ボトルネックになる場所を特定できれば、ちゃんとしたプロファイラだよ。
今ぐぐったら、cProfileとprofileっていうプロファイリングするモジュールがあるじゃん
3.7にしたらscrapy (正確にはtwisted)が動かなくなった
スクレイピングは興味はあるけど
別に収集したいデータがないから学習のモチベーション上がらない
データ収集以外にRSSリーダー的なのも作れちゃうぞ
更新しているかどうか確認して更新してたら開くようにするとか
RSSに対応しているサイトはもちろんRSSリーダー使っているけど
対応していないサイトの方が多いんだよね、そういうのに超便利
RSS リーダーって未だに何なのか良く分からない。
自分でサーバー持ってないとRSSリーダー自作してもあまり便利ではないからなあ
PCでもスマホでも閲覧履歴共有できるようになってるようなwebサービスが結局一番便利
見出しだけ拾ってきて表示してくれる機能
としてもイマイチな感じなんだが>RSS
>>104 単に見出しを拾うのではなく、「更新されたら」見出しを拾うというのがRSSの役割
チェックしたいサイトが1つ2つなら手動で確認してもいいが10や20のサイトを一々巡回していられない
ニュースなら読みたいときに読むだけだから、更新されたかどうかは興味ない。
ブログとかかね?
発信したい人はTwitterなんかだろうし。
FBとかは通知もらえるし。
ここでRSSの有用性について議論()すんのやめてくれる?
RSSに対応していないため自作更新チェックスクリプトで更新チェックしているのはこれくらいかな(約400個)
5ch
ブログ
無料で読めるWeb漫画(裏サンデーとか)
気になる商品のアマゾンレビューが追加されたかチェック
気になる商品の価格.comのレビューが追加されたかチェック
各商品サイトで新商品チェック(カメラとかファーストフードとか)
インスタグラム
qiitaの記事
Youtube(登録はしたくないけどチェックしたいチャンネルとか検索結果とか)
読みたくなった時に更新チェック走らせて、更新されたものだけ出てくるから
そこから興味が沸いたのだけ見る感じ
>>106 Twitterは気づかないで流れてしまうことがある
タイトルだけ全件チェックして自分で取捨選択したいニュースサイトとかたまにしか更新されないブログとかはwebのRSSサービスで勝手に取得してくれるのが便利
ループ実行中にソースを書き換えるとそのまま反映してくれるんだがすごいな
また自分の回りを見ただけで正しいと思い込んでるの?
自分好みのエロ画像をAIに学習させて
自動収集出来そうな気もするけど
要らない画像も大量に収集されそうな気もする
そうすると結局自分で選んだ方が良い気がしてくる
バカだな。
エロ画像学習させて自動生成するんだよ!
フェイクポルノなんてディープラーニングアイコラだからなあ
時代は自家製造に回帰しつつある
dictionaryの扱いについてわかる人いれば教えてください
以下の辞書オブジェクトが2つあるとして重複を考慮せずに単純に合体したものを返したいです。
dict1 = {‘A’: 1, ‘B’: 2}
dict2 = {‘A’: 9, ‘B’: 8}
=>
dict = { {‘A’: 1, ‘B’: 2}, {‘A’: 9, ‘B’: 8})
リストのappendと同じことがしたいのですが,
dictionaryにはappend要素がないため困っています。
>>122 > =>
> dict = { {‘A’: 1, ‘B’: 2}, {‘A’: 9, ‘B’: 8})
それ例えば ‘A’: 1 が欲しい時はどうするつもりなの?
もともとの動機は?
そっちを聞かせてもらったほうが解決早そう
>>123, 124, 125
あ、そういえばそうですね。。
失敬。出直してきます。。
彼はスレが止まると問題を出して盛り上げようとする謎謎クン
でもちょっとアレだから問題になってない問題を出しちゃうんだ
はい滑ってますね
陰キャが冗談を言おうとしてもこんなもんです
言い慣れてないから
>>128 大丈夫だよ、滑ってるとか滑って無いとか誰も気にしてないから
>>120もみんなスルーしてくれたじゃん、大丈夫だから!
重複を考慮せずにっていうから、要素は元から重複しない仮定があるのかと思いきや、例に挙がってるのが普通に重複してるから意表を突かれるよね。
>>122 c++にはmultimapというのがあって、一つのキーに複数の値を持たせることができる。
キーが重複しているdictionary二つを組み合わせてmultimapのようなものを作ろうということかな?
ちょっとググったら、collections.defaultdictでそういうことができるっぽいぞ
知らんけど新しいdictのキーを配列なりsetなりにすればいいのでは
>>122は多分こういう事がやりたいんだろうと勝手に推測して俺用に書いたメモを貼っておく
>>> d1 = {'k1': 1, 'k2': 2}
>>> d2 = {'k1': 100, 'k3': 3, 'k4': 4}
>>> d1.update(d2) #スペルミスに注意。updataではなくupdate
>>> d1
{'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4} #値がかぶるときはupdateの引数で上書きされる
こうしてくれるやつない?
d3 = {'k1': [1, 100], 'k2': 2, 'k3': 3, 'k4': 4}
>>135 値が数だったりリストだったりすると使いづらいよ。
全部リストにしたほうがいい。
>>134 updata なんて単語ないのにどうしてミスるのか謎。
>>137 データはdata、日付はdateなわけだから
データ更新といわれたら up+data って発想にならね?
>>140 データ更新=up+data ってなら
更新=up か?
暑さで脳みそやられちゃったのかな
「新しいデータ、アップしといて」ってのは分からんでもない。
どこかで一度読み間違えてずっとそうだと思いこんでたってことは、まあなくはない。
> updata
うん、ないわ
>>142 そのあっぷは
あっぷろーどの略なんじゃ
すみません教えてください
anacondaのcloudに登録しようとしたら
IPアドレスがアクセス禁止されてるって出るんですがなぜでしょうか
N枚のシーケンス画像から1枚の画像を作ることを考えていて、画素毎に異なるシーケンス画像の値を参照したいと考えています
シーケンス画像のオブジェクトが
shape=(N,640,480,3) dtype=uint8
画素ごとにどのシーケンスから値を選択するかのオブジェクトが
shape=(640,480) dtype=int
となっています(値は0~N-1)
LUTのようにして一度に画素をすべて参照するにはどのように記述したらよいでしょうか
あちらでまともな回答が得られなかったのでこちらにきました
みんなのPythonをやったあとにおすすめな参考書を教えて下さい
Pythonのホットな情報が得られる日本語のサイトってありますか?
ありません
そもそも英語読めない人がPythonなんかやってもあまり意味もありません
英語を読む努力をしてください
日本のパイソニストは情報発信能力が低いということでFA?
Python使いは理系が多いから英語を読むことに対して抵抗がないんじゃないかな
既に英語で出てる情報を日本語にわざわざ翻訳するより、その手間で他の調べたり中身作ったりする方がはやいしな
日本人向けpython情報サイトはビッグなビジネスチャンスじゃないかなあ
これで起業できそうだけど
既に侍エンジニア塾とかが占領して付け入る好きないよ
電卓内蔵言語がPythonになった時代だからね
ExcelもVBからPythonに変更される気配だし
日本も今後は身近なプログラミング言語になることだろうね
月刊I/Oに掲載される言語もPython
昔はBASICやアセンブラだったのに
IT@とかのサイトはpythonの情報記事はほとんどないね
ビジネスサイドではまだまだ
>>165 侍エンジニア塾って調べたけどタダの入門サイトじゃん
もっとメジャーなサイトないのかな
pythonをビジネスで使っててIT業界に幅広く人脈のある人が作ればいいんだけど
>>166 Python 内蔵電卓があるんだ。
ポケコンみたいなやつ?
Pythonだと入力しにくそうだな。
侍のサイトのウザさは異常
社員の顔出しすぎ
下にずっと顔の広告出て消せないのは
考えたやつアホやろ
>>166 BASICが変数・型宣言などに関して矯正されてしまったので、
古き悪しきちゃらんぽらん言語としてPythonを好む輩がいるだけだろ。
蛇の道は蛇で、汚れ仕事専用。
Excelは幅広いユーザーを持つビジネスソフトだから、Pythonなんて
気持ち悪い名前の言語が採用されるわけないし、VBAの膨大なプログラム
資産を捨ててまでPythonに乗り換えるわけがない。
>>171 bluemixサイトに出てくる眼鏡の男も視界に入るとイラつくからやめてほしい
侍エンジニアは毎度トップ5ぐらいに出てくるが内容がズレていることも多いので開かないことにしている
>>166 10年以上遅れてる
っていうか20年遅れてる
今後もっと差は開く
日本が遅れているというか、正確に言うと日本のIT業界の大半を占めるSIerを中心とするピラミッド構造内の企業が遅れすぎている
なので一番重要なことはSIerに入らないこと、企業システムの受託開発に関わらないこと
逆に自社サービスで飯食っていけている企業であればそれなりに海外とも勝負できる力は付けられるだろう
Pythonでも良いんだけど、Pythonの文化に合うのか心配。
マイクロソフト謹製ライブラリか自分が責任を持つ自分のライブラリ以外が認められるかどうかだよね。
それ以外のコードを全部読まされることになる事態は避けたい。
オープンソースでもデファクトスタンダードになっていて世界中の開発者が使用しているようなものの方が
自家製ライブラリよりよっぽど信頼性高いと思うけど日本企業ってやたら自家製にこだわるよね
インフラのような命に関わるシステムならそれも必要な部分もあるかもしれないがPythonの主な用途であれば
本番環境であっても不具合出てから修正すればいいや、という考えで十分なものが大半だろう
>>159 @chie8842の人に聞いて下さい。
>>159 から
>>179 の発言が出てくるとは想像できなかった
安価ミス
>>159 の質問から発生した話題で
>>177 のような発言に至るとは
>>178 そりゃ、自分の責任ではない〜の責任と言える必要が有るからね。
じゃマイクロソフトが責任取ってくれるかっていうとそんなこと無いと思うんだけどそういうもんだ。
全くアホらしいけどね。
>>181 Oh、今気付いたよ。
ExcelPythonのスレだと思ってた。
スマンのう。
>>178 契約形態の問題だよ
受託開発でOSS使いまくったら、使ってる全てのOSSのライセンスを客に許諾させなきゃいけないし、
納品後の不具合は客にとっては「瑕疵」だ
>>183 だよね
Excel Python スレ行けって描こうと思ってて忘れてた
>>170 フランス向けのCASIO fx-CG50グラフ関数電卓に試用版としてmini Pythonが搭載されました
フランス以外の地域には
今年の9月末のOSアップデートで対応するらしい
グラフ描画関連や表計算、行列、複素数など本体が持つ全ての機能を使えるモジュールが追加されるらしい
(日本での公式アナウンスなし)
PCあるからいいや、って感じだな
PCがすぐ触れる環境にいることが大半だから普通の関数電卓も学生時代ぐらいしか使ってないし
>>186 おお、スゴいね。
NumPy が使えるといいな。
良いかもと思ったんだけど写真みたらスマホで良いじゃんと思ってしまった。
これから算出する複数の値から最小の値だけ取り出したいとき
一旦値をリストに入れて、minで取り出したり
if文を使って最小の値を更新したりはなんかダサい気がしたので
もっとスマートな方法はないものかと考えてみたんだけど
x=min(x,tmp) ってやるのがちょっとスマートな気がした
別にダサいとは思わんが人に言うほどスマートとも思わん
やり方はいろいろあるけど
最小値保持クラスを作ってそこに値を物故んで最終的に値を取り出すとそれが最小値
ということをわざわざやる人はいまい
要素追加時に最小値だけ分けようとするくらいなら
二分木なりなんなりでソート済でデータ持っとけ
誰が書いても似たようなコーディングになるってのが
Pythonたる所以でしょ?
なのに、なぜそこまで奇をてらったやり方模索するかなー
そんな事に労力使わずもっと別の事に使えばいいのに
いいんだよ、皆んなと同じで
>>195 二分木の追加がlog nだから計算時間がかかる。
計算時間きにするならpythonつかうなって?
>>191 x=min(x,tmp)
普通によくやるわ。Cでもpyでもperlでもjsでも。
>>200 cとperlは三項演算子使う方が多いと思うです。
x= x if x < tmp else tmp
分かりにくい
これってループで一々tmpと現在の最小値比較してるってこと?
コンパイル言語から来た人の超典型的失敗パターンじゃないか
pythonで簡単にできる方法だとnumpyでmin関数入れるのが一番早い
>>201 そのコードに名前を付けたものが min やろ…
>>204 ケースバイケース。
高速化してもしょうがない時もあるし。
>>204 それはリスト化されていることが条件だよね?
西澤 弘毅 他1名
Pythonで体験してわかるアルゴリズムとデータ構造
この本の書評がどこにもないんですが少しでも読んだ人の感想聞きたいです
値を全部別に用意したsetかなんかに入れといて最後にmin()で抜き出したほうが面倒がないだろ
>>189 tensorflowもchainerもkerasもcaffeもsympyもscipyも
元の書き込みではスマートにしたいってことだけどそれならリストをminするだけが一番スマート
超巨大なリストでメモリに乗らないような特殊な状況とは書かれていないし
python使いならnumpyとpandasはマスト
>>220 IISとASPのどっちが良いかみたいな糞発言するな
cpythonのネイティブ環境のみで何とかするのが漢というものだ
>>219 pandas使ったことない。
メリットがよくわからない。
>>223 列に名前を付けられる
行にインデックスを設定できる
EXCELの表をそのままデータ化した感じ
例えば一つのセルだけ書き換えたくても
全部読んで全部書くっていうのが違和感あるんだよな
そもそもpandasは列毎に意味のある値を纏めたい場合に向けたものなので単一セルの書き換えが遅いのは仕方ない
そういう煩雑な操作はnumpyでやって最後にpandasで整理する
ファイルのストリーム読み込みでジェネレーターを使う利点ってあるのかな?
Webページのソース取り込むじゃん。
ソースでかすぎて取りきれないじゃん(1000行ぐらいで後は切り捨てられてる)
なんかいい方法ない?
PyPy使っている人いますか。仕事で使いづらいです。
PyPyはリソースを無駄に分散させるアホとしてPythonコミュニティから村八分にされてる嫌われ者
使わなくていい
もうおしめえだなpython
Pythonを生み出し30年間にわたって開発主導してきたvan Rossum、嫌気が差して引退 [787645228]
http://2chb.net/r/poverty/1532767696/ この前、周りから過大評価されて祭りあげられるのに嫌気がさしたと読んだぞ
口を出さずに金だけ出す奴に買って欲しい
その点Googleは無い
●●県内図書館横断検索 大学図書館と離島の図書館を除く公共図書館
検索キーワード python3
検索結果0件
はぁ?
webdriver 使ってgoogle-chromeを起動させたいのですが
「chromeは自動テストソフトウェアによって制御されています」とメッセージがでるやつじゃなく
いつも使っているchromeブラウザ(お気に入りなどが登録されているやつ)を起動させる方法ありましたら教えて下さい
options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true) # ブラウザを操作しない
options.add_argument('--start-maximized') # 画面最大
漏れは、Ruby で、画面最大にして、ブラウザを操作しないようにしているけど、
シェル(PowerShell・コマンドプロンプト)が入力できるようになるだけで、
依然として、ブラウザは、シェルの子プロセスだし、
シェルを終了すれば、ブラウザも終了する
「自動テストソフトウェアによって制御されています」も、常に表示される
>>244 import webbrowser
webbrowser.open('
http://www.python.org')
Numpy使っています
[[[12, 10], [2, 3], [5, 22]]]
[[[10, 12], [3, 4], [1, 3]]]
このような行列があった際に、それぞれの行列の1次元配列(例えば[12, 10])のユークリッド距離(行列内の同じ順番の配列のみ)が20以下の際はtrue、それ以上はfalseの行列を返したいです
この場合は
[[true, true, false]]です
>>249 arrayが二つあるけどそれぞれの関係が分かりません
例えば(12, 10)と(10, 12)のユークリッド距離を計算して20以下かどうか判断するのかなと解釈したけど
(5, 22)と(1, 3)のユークリッド距離は20以下なので例と答えが違うし。
ちなみにこんな感じで計算した
a = np.array([[[12, 10], [2, 3], [5, 22]]]) - np.array([[[10, 12], [3, 4], [1, 3]]])
f = lambda x: np.linalg.norm(x) <= 20
np.apply_along_axis(f, 2, a) # array([[ True, True, True]])
>>250 すみませんミスです
最後の配列は[1,1]です
解釈はそれであってると思います
最後の出力を(ユークリッド距離が20以下)がTrueの場合は、1つめの行列の対応する座標をコピー、Falseの場合は[0, 0]とする方法もありますかね?
[[true, true, false]]の場合は[[12, 10], [2, 3], [0, 0]]]です
NumPy って Python の文法と関係ないよね。
>>251 >最後の出力を(ユークリッド距離が20以下)がTrueの場合は、1つめの行列の対応する座標をコピー、Falseの場合は[0, 0]とする方法もありますかね?
できるけど、 そう言うコーディングはしない方がいいんじゃないかな。
1つ目の行列に[0,0]があったらバグるんじゃない?
pyqt5、py2app を使って簡単なテキストエディタ作ってみたら
260MBとかアホみたいなサイズのアプリが出来たんだけど
設定とか工夫していけばサイズ小さくなるもの?
そりゃPythonやPyQt自体を丸ごと突っ込んでるわけだからそんなもんだろ
細かいこと気にしだしたらC#でも使って作り直したほうが早いという結論にしかならないわけで、
気にしないのが一番
255だけど、パッケージの中覗いたら
本当にただ必要なもの詰め込んだだけなんだね
変な幻想を抱かないようにするよ、ありがとう!
簡単なテキストエディタが260MBは普通じゃないだろ
普通はKBレベルを期待する
1から6までのint が5つ入ったリストがあって
[1, 5, 6, 4, 3]みたいなのがたくさん
そのリストの中から5つともゾロ目のリストを判定する方法ある?
herokuとかの無料プランで遊ぼうと思っても思いのほか容量がかさんで困ることはあるな
プログラム未経験者がPython学ぶには何から始めたら良いですか?
>>261 listA = [1,2,3,4,5,6]
listB = [1,1,1,1,1,1]
とする
素直な解法
all ([x == listA[0] for x in listA]) #False
all ([x == listB[0] for x in listB]) #True
なげやりな解法
len(set(listA)) == 1 #False
len(set(listB)) == 1 #True
>>263 paizaラーニングの無料動画見てAOJの問題解いたり
>>264 setのやつはよく使う
ダブリの処理はこれが一番楽
Pythonって、0.1を100回足しても誤差出ないのな
げすぇ
誤差を気にする金融系などではdecimal型を使う
>>> A = [1,2,3,4,5,6]
>>> B = [1,1,1,1,1,1]
>>> C = [0,0,0,0,0,0]
>>> M = lambda L: reduce(lambda a, b: (a[0] and a[1]==b, b), L[1:], (True, L[0]))[0]
>>> M(A)
False
>>> M(B)
True
>>> M(C)
True
ヒント
隣との差が全てゼロ。
ゼロはブーリアンのコンテキストでFalse。
"Removed reduce(). Use functools.reduce() if you really need it; however, 99 percent of the time an explicit for loop is more readable."
eval()の中ってスコープどうなってんだ?
関数ないでつかっても関数の引数が notfoundになるんだけど
https://docs.python.org/3.6/library/functions.html#eval に書いてあるが、globals引数とlocals引数をどのように与えるかによって変わる
どちらも指定しなかった場合はglobals=globals(), locals=globals()
と同等になるので、関数スコープの変数にはアクセスできない
関数スコープの変数にアクセスしたいなら、localsにはlocals()を指定する
>>277 それすると importしたmoduleが使えなくなりません?
eval(str, locals(), globals())でやるのな
locals()だけ指定してたわ、(^^ゞありがとう
自作ライブラリmylibの中でimport numpy as npとしてた場合にこのmylibをimport mylib as mlとインポートすると
ml.と入力した時点でエディタ(Spyder)の補完機能でnpまで候補に出てくるのどうにかならない?
アンダーバー付けてプライベート扱いにすれば候補には出ないけど面倒臭い
pip show モジュール名
でlocationのとこが格納されている所確認して
python開いて
import sys
print(sys.path)
でlocationのとこ出るんですけど
いざimport モジュール名やると
モジュールないよーって出る解決方法ありますか?
Python勉強する上でこれはやっとけっての何?
Django、Kivy、OpenCVとか以外にどんなのが重要?
その3つから何がしたいのかさっぱり伝わってこないから何とも
これやっとけってのなら
正規表現
ある意味python関係ないが
>>282 例外メッセージとスタックトレースとimportを略さないで貼って
算数勉強する上でこれはやっとけての何?
微積、統計、集合論とか以外にどんなのが重要?
282です
エラーメッセージがTraceback (most recent call last):
File "C:\Users\ユーザー名\Desktop\python_file\teeest.py", line 1, in <module>
import ccxt
ModuleNotFoundError: No module named 'ccxt'
スタックとレースが
import ccxt
from pprint import pprint
bitflyer = ccxt.bitflyer()
pprint( bitflyer.has )
です。
一度pip unistall ccxt
してノーキャッシュしてもダメでした。
Name: ccxt
Version: 1.17.82
Summary: A JavaScript / Python / PHP cryptocurrency trading library with support for 100+ exchanges
Home-page:
https://ccxt.trade Author: Igor Kroitor
Author-email:
[email protected] License: MIT
Location: c:\users\ユーザー名\appdata\local\programs\python\python36-32\lib\site-packages
Requires: certifi, web3, yarl, aiodns, aiohttp, setuptools, requests, cchardet
Required-by:
これがpipshowで得たデータで
'C:\\Users\\ユーザー名\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages'
sysのパス(省いてる)ここが表示されるので探してるとは思うのですが、、、
Python 3 64bitで動くKinect v2のライブラリ無いですか?
PyKinect2は32bitしか駄目らしくて良いのが見つからないです
パス・PC のユーザー名など、システムで使うものに、
半角英数字以外の文字を使っているとか?
pythonのインタラクティブモード(ここでは普通のpythonが開く)では問題なく動いて色々調べたのですが
どうやらプログラム実行時のみanacondaのpythonで実行されてるみたいです
コマンドプロンプト上から
anaconda pythonと普通のpythonの実行を都度変えることとかは可能でしょうか?
環境書いてないけどWindowsでpy.exeの関連付けが狂ってるんだろ
python3 画像にテキストを埋め込むライブラリってどれがいいの?
Stegano 0.8.5
steganographer 2.0.0
steganography 0.1.1 ←python3でpip install できなかった
python始めてすぐ躓いた
atomにprint('hello')と書いて.pyでデスクトップに保存したんだけど、
コマンドプロントでpython起動してからドラッグドロップするとエラーでline1とかunexpected character after line continuation characterって出てhelloが出ない
Windows10のpython3です
原因と対処法わかります?
>>307 スクリプトの実行の仕方が間違っている
起動したPythonにスクリプトのファイル名を渡すのではなく
Pythonを起動するときにスクリプトのファイル名を渡す
3.4.1.3. スクリプトから起動する
https://docs.python.jp/3/using/windows.html#from-a-script たとえば「デスクトップ」に「hello.py」という名前でファイルを保存したなら
コマンドプロンプトで
cd "%USERPROFILE%\Desktop"
などとやってデスクトップのディレクトリへ移動し
py hello.py
で実行
またはファイルのフルパスをPythonのコマンドに渡して実行
py "%USERPROFILE%\Desktop\hello.py"
ああ、引数じゃなくてプログラムとしてパスを与えてるのか
>>307 君もクジラ飛行机の本読んでるやろ?
俺も同じとこで躓いたけど、はっきり言ってどうでもいいから無視して先行ったわ
よく分からんけどラズパイでPythonやってた時は最初改行コードのCR-FLのCRがエラーの元になってたっけな
Windowsではそういうのでエラー出た記憶ないけど
てかWork領域くらい
C:\Work\Pythonとかにしてからやれよと言いたい
意外にWindowsの人少ないのかな?
俺はWindowsじゃないから
>>307はわからない
てか起動してからファイルを渡すんじゃなくて
> python hello.pyって呼ぶべきなんだよね
>>>←このプロンプトでファイルを呼ぶとそりゃエラーになるわ
いや、とりあえず
>>313やってみて駄目だったらまた書いてくれってことだと思う
>>323 まさかとは思うけどギャグで言ってんだよな?
>>313 cd desktopってやってからトラッグドロップしたらできた!
ビギナーすぎて仕組みはわからないけど多分毎回ファイルがあるところに移動しないとファイルを見つけられないってことなのかな?
ありがとう!
「コマンド 引数」
ruby .\a.rb
ruby C:\Users\Owner\Documents\a.rb
上は、カレントディレクトリからの相対パス。
先頭に「.\」を付ける
下は、絶対パス
cd で、カレントディレクトリ・今着目している場所を変えられる。
数十の基本コマンドを知らないと、話にならない
Winで初心者だったらIDLEで書いてそのままIDLEで走らせろよ
それで用が足りるだろ
vscodeオススメしとく。いろいろ便利になるとおもうよ。
てかそこで躓くのはエディタとかIDEの問題ではなく
シェルとかコマンドラインの知識が足りないんだからubuntu入れてターミナルに慣れることから始めた方がいい
win10のWSLでもいいのかな?
いまだと開発者モードオンにしたら(今でも必要かはよく分からんが)
WindowsアプリストアからLinux Subsystemはよりどりみどりで選べるよ
>>324>>326
こっちの専ブラでは \ (おそらくそっちの画面では \ の半角) が ¥ の半角で表示されるので読んでて笑える。
>>333 今は開発者モードONにしなくてもできる筈。
スクレーピングしたデータをDBに保存したい場合ってなんかいいpaasみたいなのある?scrapy動かしてそのままDBに保存できるやつ
それはお前がどのくらいデータを収集するのか次第だろ…
IDLEのダメなところは
行番号が分からないところだよな
>>341 idleつかうならspyderのほうがいいんじゃない?
ちょっと教えてください
GeminiPDAのTermuxUbuntuでPhantomJS使ったスクレイピング試してます。
pythonで対話モード?だとget後のdriver.page_sourceで正常に
ページソースの取得が出来ますけど、
ファイル渡して実行すると下記のような空のHTML?しか返ってきません。
<html><head></head><body></body></html>
googleのTOPで試しましたけど、他のWebページでも同じなようです。
get後にwait入れたりもしてみましたが同じでした。
この場合他にどういった事を試せば良いでしょうか?
スクレイピング勉強始めたばかりでお約束等手探り状態です。
各APバージョンはPython3.6.5とSelenium3.8.0、PhantomJS2.1.1です。
googleは止めておいた方が...
すぐアク禁にされるから
不便だよ
>>347 スクレイピングするとアク禁喰らうのかよ?
迂闊に出来んなぁ
今からWebアプリの開発をPythonで始めたいのですが、どのような開発環境がいいでしょうか?
現状は次の通りです
・3年ほど前から、自宅鯖で自分専用のWebサーバーを運用しています。主な用途は仕事(自営)の実績データ整理です。出先からスマホで入力することが多いので、Webサーバーにしています
・CENTOS6.5+apache2.2+postgresql8.4+PHP5.3で運用しています
・自宅にはサーバー機が1台とデスクトップ機(win10 64bit)が1台あり、LANで繋がっています
・デスクトップ機上のIDE(現在はNetbeans、以前はaptana)でソースを書いて、FTPでサーバー機に転送し、テストはデスクトップ機がLAN経由でサーバー機に接続して行っています
考えられるのは、従来通りの方法か、デスクトップ機上に仮想マシンを作ってIDEもそこに置くか、IDEはwindows上に置いておいて仮想マシンはテスト専用にする、くらいですがそれぞれの長所・短所がよく分かりません
なお、デスクトップ機でlinuxを使った経験はほとんどありません。OSのインストール時に試しにx-windowをちょっと触ったくらいです
>>347 1秒に何度も実行するわけでは無いので大丈夫じゃないですかね
でも忠告どおりyahoo等と入れ替えて実施します
UserAgentも変えましょうかね
ありがとう
>>349 Win10で世界に何かを公開するとかはやめとけ やめとけ やめとけ
素直にレンタルサバ(中身はLinux系)借りとけ
>>349 自家サーバーにこだわりが無ければ
適当なPaaSを選んで使うのが楽
お遊び程度なら無料枠で充分動く
>>352 サーバーの方に手を入れるつもりはなくて、PHPで作ってたのをPythonに切り替えるにあたって、開発環境をどうしようかって話です
>>353 その通りです
>>354 開発環境のセットアップはanacondaインストールから始めるといいかも。
エディタはanacondaに入ってるspyderが個人的には好きだけど、pycharmを勧める人も多い。
contosにデフォで入ってるpythonがバージョン3じゃなかったりするので、python -Vでバージョン確認して2.7とかだったら、改めてpythonをインストールしたほうがいいかも。
pycharmはweb開発は有料だし、webだと.py 以外のファイルを弄る機会も多いからvscodeの方がいいな
vscode、関数戻り値の型ヒント書くとハイライタのフォントカラーがおかしくなる。
職場のvscodeでは正常なんだが、自宅のwin、macの両方ともダメ。
原因調べるのまんどくさ。
スクレイピングして
リストとかディクショナリーとかにデータ入れてプリントすると文字列出てくるけど
これは上書きされてるって事?それとも[a.b.c.d,,,,,, ]ってどんどん増えてくニュアンス?
TabError: inconsistent use of tabs and spaces in indentation
Pythonはこういうエラーを出してくるからいちいち面倒くさい。
強迫神経症になりそう。
>>346 あーっと自己解決かな?
get後にsleepで何秒か待つとソース取れました。
リダイレクトされたのか裏でなんか起動中なのか確認しようと思って
page_sourceの後current_url取ろうとしたら今度は下記エラー…
〜 Unable to load Atom 'execute_script' 〜
謎は深まった…orz
Seleniumスレあったけど過疎化してるね。ここで良いのかな…
vscode django remote debug でググると色々出てくる
つーか素のPHPとSQLでゴリゴリ書いてたのか、フレームワーク使ってたのかで大分移植難易度変わると思うけど
元がdb使ってたかわからんが、もし使ってたらdjangoは独自ORマッパーのModelありきだから一から作り直した方が早いと思う
7月発売予定だったDjango本が9月に延期したと思ったら来年1月にまた延期してる
>>361 pycharm使わないからそういうエラーで時間を無駄にすることになるんだよ
pandasで階層インデックス、MultiIndexのデータ形式に随時行を追加していきたいような時は、appendするよりも、新しいデータでdfを作って、それとマージしたほうがいいのかな?
そもそも、階層インデックスのdfにappendするやり方がわからない...
pycharmじゃなくともちょっと気の利いたテキストエディター使えばいいだけだぞ
>>361 タブでネストの深さ管理してるのにそれを滅茶苦茶にするのが許されるとか致命的だろ
>>363 5ch みたいに最初に、空のHTML だけを送ってきて、
その後、JavaScript の非同期処理で、内容を取得するようなページは、
少し待たないと、HTML 内に内容が読み込まれない
>>371 やっぱそうなのか〜
自分はsleepで待機したけど、seleniumの作法としては
タイトル要素待つとかなのかな?
先は長いな
ちなみにUnable load Atomはパッケージが元々壊れてる可能性
あるとかでphantomjs入れ直す予定。
npmのリポジトリにも見つけたからaptのは削除してやってみます
condaについて調べてて、グーグル先生に翻訳してもらったら
conda package がコンドームパッケージって翻訳されて会社で笑いそうになった
>>372 phantomjs は、もう開発終了だろ。
Selenium WebDriver から、Chrome で、headless mode を使える
Ruby では、
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
driver = Selenium::WebDriver.for :chrome, options: options
また、特定の要素が作られるまで、wait するような書き方もある
sjisではないファイル名をリストアップしようと思って、
try:
file_sjis = file.encode("sjis")
except UnicodeEncodeError:
print file.encode("utf-8")
こんな風に書いたら、'〜' を含むファイル名までエラーになった
実際には普通のsjisなのに
これはpythonがおかしいの?
自決しました
sjisではなくCP932が正解
同じちゃうんかい
>>376 最初はChromeやChormium、Firefoxも試したんですけどねぇ
driver = webdriver.Firefox()等でインスタンス正常に返してくれるのが
PhantomJSだけだったんですよ
Termux上っていうちょっと特殊な環境だから仕方ないかなと。
wait.until(expected_conditions.~)で待ちを作れるのは一昨日覚えました。
rubyも良いよね10年前にirbちょっと触った記憶しか無いけどw
あ〜rubyからも試してみようかな
CP932 は、sjis に、MS 固有の文字(機種依存文字)を追加したもの
それだけなら上位互換だねーで済むので、
>>378 みたいな問題は起きない
いつのまにか基礎から学ぶdjangoの発売日が7月から来年の1月に変わってる…
今日買ったオライリー本の中で、RubyのRailsとPythonのDjangoが二大フレームワークとして挙げられてたんだが、Djangoって海外じゃRailsとタメ張れるくらいそんなにメジャーなの?
だったらDjango本バンバン出して欲しいんだが
herokuの無料プランにdjangoとか突っ込んだらそれだけで無料プランの容量かなり埋まっちゃうと思うけどpython以外のwebフレームワークでも同じぐらい容量食うの?
これが初めて出た、Django の本!
Python Django 超入門、掌田津耶乃、2018
一方、Rails の本は、数十冊は出てる
reCAPTCHA の画像ポチポチ押していくやつって突破できるの?
出来ないとしたら、お前はロボット
または目が見えない
または英語を理解できていない
>>394 数十冊出さないと理解出来ないくらい複雑怪奇魑魅魍魎なRailsより
入門書なんかなくても学習出来るDjangoの方が良いと思わないか?
>>396 人間でも突破は馬鹿には無理だから
ガキ除け馬鹿除けには良いね
【中庸はNG、右か左】 世界教師マ@トレーヤ「新時代を切開くため70億人を2つのグループに分ける」
http://2chb.net/r/liveplus/1534987219/l50 PCとスマホのモニターを覗いている傍観者のみなさん、腹を決めてください。
>>397 良い本なら一冊で大丈夫だ
しかしもう今はやる気は失せた
>>394 こいつまた公式パクって改悪してわかりにくい
解説つけただけの本出したのかw
classmethodの使い道ってコンストラクタいがいにあります?
>>409 ない
Pythonの場合はインスタンスに属さない関数はモジュール直下に置くのが好まれる
>>410 やっぱそすか
クラス自体を引数に取ってもやることはインスタンス作るくらいですよね
例外言い出したらキリがないけど
メタプログラミングとか黒魔術とかのときは使うんじゃね
世界中で、主要言語のフレームワーク、ゲームエンジンの本を書いたのは、掌田だけ!
Guido の本は、もっとひどい。
詳細は検索して! ばっかりw
内容がないw
内包表記は読みにくいから、使わない方がよいとか
>>394 著作者はApple Script入門書書いた超有名人じゃないっすか
>>412 ほんとに要らないのは、staticmethodの方だな。
staticmethodは便利
classmethodも使う
一番要らないのはC++のprivate
掌田津耶乃って入門書ビジネスやってるだけのチテショウだろ…
classmethodは、クラスレベルのアトリビュートにアクセスできるから、ファクトリ専用というわけではないw
漢字Talk7.5時代はMac専門誌でApple Scriptコラムやってて日本語版唯一の解説本だったから貴重だったんだけどな
Hyper Talkの解説本も書いてた
>>416 詳しく
どうしても、ウツダシノウに見えてしまう
Macの雑誌で連載やってたぜんまいビュンビュンってこの人の本だったのか!
>>422 本屋で内容をざっと見て
公式チュートリアルとくらべてみ
>>422 例えば君がよく知らない言語をそこらのチュートリアルでちょっと遊んでみたとするよね
で、その状態で(わかんないとこはきっとこうだろうと想像しつつ)断言口調で解説書を書く
そんな感じで量産されたのがきゃつの書籍群だ
>>425 わかる。まあ初心者は断定してもらった方が嬉しいのだけど
山田祥寛って人も似たような商売をしているが
彼にあるようなディスりは少ない気がする
掌田津耶乃・山田祥寛は、多言語フレームワークの2大研究家!
特に掌田は、主要ゲームエンジン・言語のフレームワーク、
開発環境の運用構築まで、世界でも類を見ないほどの研究家
短時間で、これだけ海外の文書を読めるのは、英語力が半端ないのだろう。
読む速度・理解力が、日本人の10倍ある
これだけ読んでいたら、ゲームエンジン・フレームワークの内部で呼ばれている、
native 関数・OS のAPI も、すべて知っていると思う
結局、同じCPU・命令セットを使うから、
どのOS でも、API は同じ実装になるから、予測がつく
>>427 その割には書籍はいまいちいまになんだよな
不思議
>>427 ノリがrails推しのいつもの気持ち悪い人っぽいなと思ったら、もしかして
>>394と同じ人か
スミマセンすごく単純な話なんですが結構悩んでます。
pandas でDatetime型変数の引き算でミリセコンド単位で求めるにはどうしたら良いでしょう。
>>427 掌田も山田もJuliaの本書かないね。黒木さんに書かないかな。
ナンバーズ3の当選数字を取り込み出来ません。当選数字はどこにあるのですか?
import urllib.request
from bs4 import BeautifulSoup
url = '
https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers3/index.html' html = urllib.request.urlopen(url)
soup = BeautifulSoup(html, "html.parser")
topicsindex = soup.find('table', attrs={'class': 'typeTK'})
for topic in topicsindex:
print(topic)
今パソコンつけてないから調べられないけど
その部分、他の要素に比べて遅く表示されるから
JavaScriptであとから取り込んでると思う
ブラウザを操作出来るSeleniumとか使おう
>>437 ありがとうございます
Selenium調べます
>>437 おー!こんなんあるんやね。
勉強になった。
横からスマソ。
参考までに、
漏れは、Ruby で、Selenium WebDriver, Nokogiri を使って、原始的な方法だが、
文字列からHTML を作って、それをJavaScript で実行して、DOM を更新している
Ruby 初心者スレッド Part 63
http://2chb.net/r/tech/1523954817/741 CASIOのグラフ関数電卓fx-CG50用OS3.20が公開され、MicroPythonが使えるようになりました
ただ、インポートモジュールはmathとrandom(乱数関連)の2つだけ
また、米国NumWorks社のグラフ関数電卓にも Pythonが搭載されてます
PCあるから電卓なんてと思われるかも知れませんな
>>442 sympyとscipyとnumpyもつけろ。
フランスの小学生の為のプログラミング学習に Pythonが採用され2020年度から授業開始
日本では考えられないが、米国では小学生から大学まで関数電卓の利用がシステム化されてるから
それをフランスでもやろうとTIとカシオは本気モード
PC導入コストより遥かに安上がりだし
>>445 sympyとnumpyつければ数学と理科の時間にもプログラムを教えることができる。
電卓本体には行列演算や複素数、リスト、グラフ描画機能備わってるので、もしかすると
インポートしないでも本体機能にアクセスする手段はあるのかもしれない
標準のスクリプトからは極座標、直交座標の関数や財務処理関連関数も使えるからなぁ
ただ、少ないメモリでも動かせるMicroPythonの性質上フルスペックの Pythonと同等のことは出来ない
sympyは、ある事情で搭載は難しいかも
米国に限らず、大抵の学校ではCAS搭載電卓の試験への持ち込みが厳禁になってるから
各社(HP社除く)学生を想定して普及価格帯にはCAS載せてない
電卓にLED付けて、試験中はLED点灯し、スクリプトを動かせない試験モードを搭載してて、試験官に試験モードを確認しやすく配慮している
また、高校まではCASは授業中使わせないような事もやってる
HP社も試験モード搭載してるが、LED点灯しててもCASが使える様になってるため、教育機関から排除されてしまった
fx-CG50に話し戻すが、有志が Python構文風(ほぼ Python)スクリプト搭載したCASを作成しており、これを無料で利用できる
CASIOフランスと学生のディスカッションで、本体機能をPythonで扱えるとCASIOが公式に発言したそうなので、もしかしたらnumpy相当は使えるかもしれない
solveも使えるのかな
見た目もオシャレでガジェットマニア心を駆り立てるわ。
numpyはよ
Androidアプリでよくね
泥タブが余裕で買える値段で態々こんな縛りプレイをする意味がわからない
大学生であとひと月休みがあり暇なのでPythonを勉強している者です。
一通りの文法を学んだあとに何をすればいいか迷っています。
機械学習、スクレイピングなどなど何かオススメがあれば
教えてください!
>>454 理系大学生ならmatplotlibが使えるとのちのち便利かもしれない。
>>451 こんなのもあるよ
https://www.numworks.com/features/ MicroPython 1.9.4(Python 3.4コンパチ)
モジュールは
math
cmath
random
kandinsky
>>454 456さんのに加えてsympyとnumpyも使えるようになったらいいですよ。
マニュアル見ると分かるけど、メニューから関数チョイスしたり、構造文はテンプレートがメニューに設定されてるので、一字一句手入力しなくてもいい
スペルミスも防げる
>>445 日本は小学校教諭がプログラミングできないから無理
フランスはどうなんだろうな
>>465 全てのモジュール使える環境の Pythonアプリってあるの?
オフラインで
>>464 外国だと教師への教育をメーカーがやったり、専門教科の教師いるから
オッサン教師に新たな知識覚えさせるのは酷
でも、数学教師なら少しはマシかな?
>>466 AndroidならRoot取ってればchrootでDebianとか普通に動くよ
>>466 PC でもそんなのないだろ。
ってかスマホならオンライン前提。
>>468 root取らなくてもtermuxでそれなりに行けんじゃない?
>>467 小中学校の数学教師ってアレですから期待薄
#全員がとは言っていない
>>472 python-devとlibcrypy-dev入れたらイケた
>>469 くっ・・
iPhone AppのPython2IDEはオフライン専用だった・・
ダメじゃん
>>471 小学校教師なんかsympyもscipyも覚えんでいいやろ。中学教師はそのどっちか。高校の教師だって線型やってないからnumpy覚える必要ない。
iOSだったらPythonistaがいける
NumPyとMatplotlibはデフォルトでインストール済み
pandasはバージョンが合わないみたいでインストール出来なかった
>>477 うむ。さっき買いました
ウィジェットに登録できたり、workflowで連携できたりと、最初からコレ買っておけばよかった
サンプルのブロック崩しゲームがスピード速くて驚いた
Pythonだけでコーティングされてることに二度びっくり
実はCythonなんじゃ・・
Raspberry Pithon があってもいい。
東大のロゴってPythonと見間違うよな
意味はあるんだな
http://designblog.nesuta.com/ロゴストック/日本を代表する大学のロゴは、「色」にこだわり/
>>485 Pythonista pipでググれば裏技が見つかるよん
>>477 StaShをインストールして
そこからpip install pandasしたら
インストールできたよ
>>489 動く?
試したの昔だから記憶曖昧だから
インストール出来たけどエラー出て動かないだったかも
あとで、試してみる
>>491 ダメっぽい
importエラーでた
ダメじゃん!
macでvim使いたいんだけどpython3を有効にできひん
brewで―with-python3してるのに…
fx-CG50で使えるPythonはMicro Python 1.9.2で
モジュールは標準モジュールのサブセットです
またモジュール名が"u"で始まるそうです
jsonなら、ujson
mathはそのまま
逆にMicroPython固有ライブラリがあり
macineにはハードウェア固有の機能へのアクセス
MicroPythonはタートルロボットやワンボードマイコン、組込み系に使われてるのでハードウェア制御用ライブラリが用意されてます
fx-CG50の標準スクリプトでは表計算や複素数、行列演算、グラフ描画等々へフルアクセスできるのに
MicroPythonだと制限受けるのはなんとも勿体ない点でしょう
ストレージやワークメモリに制限あるため仕方ないのかも
CASIO独自にPytho処理系を構築でもしない限り今後も難しいでしょうね
CASIOやHP※1、TI※2はマシン固有のスクリプトを搭載してるからいいとして、
同じくMicroPythonを標準スクリプトに採用したNumWorks社のグラフ関数電卓は他社より使えるモジュール数が多い
math,cmath,random,kandinsky の4つを用意
他社よりリソースが少ないが、シンプルさを売り文句にしているので構わないんでしょう
あくまでプログラミング学習用途向けっぽい
※1:HP Prime搭載CASのスクリプトにPythonを採用
※2:2019年初頭に対応予定
iPhoneのpythonistaで表示してるSafariのキャッシュのHTML取得する方法教えてください
常識的に考えろ
んなことできたら情報盗み放題やないか
>>497 それがworkflowで出来てるんだ
pythonでも出来ないのかなあと思って
機内モードでもSafariのshare extensionからworkflow起動して
Get Details of Safari Web Page使うと取得出来るから
Safariからキャッシュもらってると思う
そして元のHTMLと違うからSafariで処理した後のHTMLのキャッシュかと…
どうやるんだろう
appex.get_web_page_info()
フォーラム見ると
これで取れるらしいけど
上手く取れないという人もいて
俺も取れなかった
悩むならrequestsとbs4使った方が
早そうだわ
100GB前後のcsvデータを読み込んで処理して
グラフ化したいんですけどいいライブラリとか方法ないですかね?
>>503 pandasとmatplotlib以外しらね
メモリ容量が100GBもないだろうからまず全データを一気に読み込むことは不可能なので
適当に分割してループで処理して結果を集計していくしかないので、各ループでやることは
ごく一般的なデータ処理でしかない
ちなみに100GBの時系列データをそのまま並べて時系列グラフにしたいということなら
それらを見分けられるような解像度のディスプレイは存在しないので数千点ぐらいにまで間引いても見た目は変わらない
>>503 どんな処理をしたいのか知らんけどDBに処理させるのが簡単かと
さすがに1ファイル100GBなんてことはしてないよな
俺なら1ファイル256MB程度に分割したり、バイナリで保存したりするわ
cythonのlibcpp.algorithm.sort
に比較関数でなく関数オブジェクトを渡すには
どうすればいいですか?
https://twitter.com/ikuko_b/status/1038666078941929474?s=19 https://twitter.com/ikuko_b/status/1038633441854611456?s=19 ITeensLab主催の親子仮想通貨講座に息子と来ている。こば先生 @ITeensKOBA の話、熱い!
この世紀の発明でこの先何ができるようになりそうなのか、子供の今、これを知っておくとどんなメリットがあるのかをわかりやすく話してくれている。
息子の目がキラキラしてきた!
宮脇@サイバーセキュリティ財団が関わるプログラミング教室らしい
https://twitter.com/nukalumix/status/840555060228644864 サイバーセキュリティ財団の主要メンバーは、数年前まで貴金属買い取り(貴金属ありませんかー?って電話かけるやつ)をやってた人たちだって、もう言ってたっけ?
https://twitter.com/5chan_nel (5ch newer account)
NetworkXで作った無向グラフについて「ノードAとノードBをつなぐ経路が存在するかどうか(同じ連結成分にあるかどうか)」を判定する関数はありますか?
経路の長さは必要ありません。
python 2/3 コンパチのスクリプトを書いてるけど、
素の環境に対応したものでやろうとすると名前の変わったモジュールの呼びだし方とかいろいろ工夫しないとダメなんだな。
__future__使えばだいぶ楽になるけど、使わないと事あるごとにユニコード地獄w
コンソール表示関連は場合分けがどうしても必要で更に面倒くさい。
>>519 ファイトォ*:.。..。.:*・゚(n‘∀‘)η゚・*:.。..。.:*!!!☆
やっぱPython楽で良いな
必要あって久々にJavaScriptで書いてら
あれ、なんでエラー?
}とか;とか忘れまくり。面倒くせー
それは単にPythonの方に慣れてるだけだよ
久々にPython書くと逆に混乱することもあるんだから
if とかwhileの末尾に:があるのが一貫性ないな
;が1つの文の区切り
{}が1つの複文
一番分かりやすい
Javaとかの{}って何重にも重なるとどれとどれが対応しているのかわかりにくいよな
インデント最高
次世代言語が目指すべきは
semantics without syntaxやな
VSCode で、Bracket Pair Colorizer という拡張機能を入れれば、
対応したカッコが、同じ色で表示される
pythonというウンコスクリプトには
空文という概念すらない
実行しないときに
なんでいちいち意味不明な文書くの?
ウンコスクリプトには致命的な言語としての欠陥がある
つまりそれを回避するために
意味不明なpassという制御が追加されている
数万個単位のファイルを時間をかけてDLするプログラムで
DL状況を記録したテキストファイルをしょっちゅう更新するのはディスクに悪そうだからと
ダミーファイルを作って、それを消していくことでDL状況を把握する手法のプログラムを作ってたんだけど
そもそもファイルをDLするんだから、 DLリスト-DL済みファイル でDL状況を把握できることに今更気づいてしまった
そもそも大量のファイルをダウンロードしている中でテキスト数文字書き換えることによるディスクへのダメージなど無視していいレベルではないか
>>542 最初のDLリストが9999990バイト(約10MB)あったとして
1件処理して10バイト減ったリストをファイルとして保存すると
9999980バイトの書き込みが発生するだろ
DL1件につき約10MBはなんかディスクに悪そうでしょ
ファイルを一部だけ書き換える処理はよく知らんし、処理もめんどくさくなりそうだし
>>543 SQLiteは一応基本的なことができるレベルだけど
あんまり好きじゃないんだよなぁ
使うしか無いなら使うけど、使わなくて済むなら使いたくない
Pythonって未経験だし文法もよく分かってないんですが、
C/C++、C#、Java、TypeScript、COBOL、Perlの経験があれば何とかなりますか?
日本語未経験のマルチリンガルの御仁が、日本語できますかねぇと聞いてるのと同じだなw
>>544 SQLiteはdeleteがクソ遅いから使わない方がいい
ファイルの書き換えならケツから削ってケツだけ書き出すべき
先頭から削ると確かにディスク負荷が馬鹿にならん
再起動を考慮しないなら俺は全部インコアで管理する
再起動を考慮するならダウンロードリストを適当な数で分割してjsonやpickleで管理するわ
そもそも最初から全部書き出し直すのが前提?
seekして1バイトだけ書き換えるのではだめなん?
>>551 文字列置換で書き出してもいいかもな
どのみちページ単位での書き出しは避けられん
>>552 SQLiteはmemでもおせーよ
>>549 初めての言語ならともかく、すでに複数の言語を駆使してる人なら、
釣りじゃない限り、改めてどうかなんてわざわざ聞かないでしょう、普通
>>544 ページサイズを4KB とすると、千ページで、4MB
そのうちの、1文字を変えると、その1ページが書き換わる。
または、2ページ以上になる事もある
例えば、1-2-3-4-5-6-7-8 というページがあって、
ページ4 を書き換えた場合、それが2ページになったとすると、
1-2-3-(9-10)-5-6-7-8 のようにつながる
1-2-3-(9-10)-5-6-7-8 のようにつながる
ここで、ページ10 に、たった1文字しか入っていなくても、1ページ使う。
1文字でも、4KBでも、1ページ使う
変更のないページには、何も変化はない。
ページの並びが変わるだけ
1-2-3-(9-10)-5-6-7-8 のようにつながる
ページ9, 10 は、1〜8 とは異なる領域に確保されるから、デフラグが起きている状態
シーケンシャルに読み込むと、ページ9, 10 だけは、異なる領域から読み込んで、
つながっているように見せるため
ツールでデフラグを解除すると、これらすべての領域を、異なる連続領域にコピーする。
連続した領域の方が、アクセスが速いから
HDD のアームが、内外内外など、行ったり来たりしないように、
1回のアームの動きで、データを読み込めるように、
HDDの方で、効率的な読み込み方をする
Linux では、1-2-3-(9-10)-5-6-7-8 のような、ページの並びが見える
OSのすべての機能を学びたいなら、ムック本の
Linuxエンジニア養成読本、第3版、2016
カーネル、起動処理、仮想記憶、
ファイルシステム、シェルスクリプトなど
どのファイルシステムにも、デフラグツールがあるから、
たぶん、すべてのファイルシステムで同じだろ
>>563 >>561のようなページの並びにするにはどんなwriteシステムコールを出せば確認できる?
こうゆう見当外れな議論ごっこも時間が経てば良い黒歴史になるもんやからな
例えば、1-2-3-4-5-6-7-8 のように、8ページを読み込んだとする
ここで、ページ4を更新したら、ページ4に、更新した印のdirty bit を付ける。
他のページには、dirty bit が付いていないから、更新されていない事がわかる
だから、1-2-3-(9-10)-5-6-7-8 のように、ページの並びだけを変えて、
ページ9, 10以外は、何も変化がない
>>564 ページ4を更新する時に、バイト数が増えれば、
1ページだけの更新ではできないから、2ページの更新になる
それで、1-2-3-(9-10)-5-6-7-8 のようになる
だから、ページ10には、1文字しか入っていない事もある
その場合、4KB近く使われていない領域があるけど、
そこに、ページ5〜8 の内容をずらして更新したりしない
ページ1〜3、5〜8 には、dirty bit が付いていないから、更新されない
>>567 ブロックマップを分かってなさそうだ
あとデフラグって言葉は違う
もっと勉強した方が良い
10MB程度と予測できるならメモリー上でやれよ
めんどくさいからリストでさ
んで、100回おきにHDDに書き込む
finallyでHDDに書き込む
>>568 ファイルシステムのBlock bitmap は、dirty bit の有無じゃなかったっけ?
ちょっと今、手元に本がないから、わからないけど
ちゅーかディスクへの書き込みで、ディスクへの負担とか考えとったら、あんた禿げるで。
OSや他のアプリはもっと頻繁に読み書きしてるよ。
デフォルトでは、5秒毎にHDD に書き込んでいる設定を、15秒毎にするとか、
SSD では書き込み回数を減らすために、そういう設定にする人もいる
ただし電源断に対する、安全性は落ちる
質問
パイソンは何で20Mの制約があるの?
有料とかないの?
月々5000円くらいなら払ってやるのに
Pythonガイジの諸君も女の腐ったような奴の扱いは上手くないらしいな
544の時点で「ああこいつ共感脳だ。そうだねって言わないといけない奴だ」と気づけ
他が頻繁に書き込みしてるからよい、って考えは良くないな
主処理に対してログや管理でどの程度リソースを使うかを考えるべき
DL総量100GBに対してログ書き込み量は1%以下に抑える、とかな
大容量のリストファイルを頻繁に更新したくないなら
「リストの何番目まで進んだか」って情報だけを別のファイルに保存すればいい
これならDL1件につき数バイトの書き込みしか発生しない
リストをランダムに処理したい場合はリストの処理状況をビットで管理して
ビット情報を別ファイルに保存すればいい
これなら100万件のリストでも125000バイトで管理できる
>>510 >>519 juliaでコーディングしちゃいなよ!
速度は速いわ、ユニコードどーんとこいの言語仕様だから
文字リテラルだけでなく、ユーザー定義関数名や変数名に漢字(絵文字)まで使えちゃうんだからさ
function ()
println("ハロー、ウンコ!")
end
julia> ()
ハロー、ウンコ!
変数名関数名ならpythonも3から2バイト使えるぞ
テスト関数に日本語使うことはあるけどそれ以外の用途でマルチバイトなんて使いたくもない
既に化けてる
っていうか
コーディングのエントロピーは出来るだけ小さく保ちたいものです
python初心者です。
今seleniumを使おうとしているのですが、
http://127.0.0.1:4444/wd/hub にアクセスできずに困っています。
プロキシは確認しましたが通していません。
どなたか対策が分かる方いらっしゃいますか?
サーバーを立てるというのはローカルサーバーの事でしょうか
スレ違い以前の問題だな
どこの板に誘導すりゃいいんだろ
カレントディレクトリに
wd/hub
と
wd/hub/index.html
を作って
import http.server
import socketserver
with socketserver.TCPServer(('127.0.0.1', 4444), http.server.SimpleHTTPRequestHandler) as httpd:
httpd.serve_forever()
を実行汁
>>586 pythonのファイルなのですが、htmlファイルは何の用途で作成するのでしょうか
ログです
[0913/014841.092:ERROR:process_reader_win.cc(123)] NtOpenThread: {アクセス拒否} プロセスはオブジェクトのアクセスを要求しましたが、アクセス権が与えられていません。 (0xc0000022)
[0913/014841.116:ERROR:exception_snapshot_win.cc(88)] thread ID 6820 not found in process
Pythonにおいて、ポリコレ議論が白熱していると話題。
奴隷制度を連想させる「master」「slave」という単語を削除が要望されてしまったという。
そもそも「master」という単語は非常に多くの場所で使われており、たとえばバージョン管理システムGitでは「masterブランチ」という概念がある。
そのため、これを変更するのは容易なことではない。また、master/slaveという単語は電子回路やソフトウェアアーキテクチャにおいて奴隷制とはまったく関係ない文脈で使われている。
そして、「slave」を置き換えられる単語で適切かつ広く普及している単語はいまのところ存在しない。
こういった理由から反対の声も出ていたが、最終的には「salve」という単語は「worker」や「helper」に、
「master process」という言葉は「parent process」に置き換えられることになったという。
なお、この議論は非常に白熱したため、Python開発において「優しい終身の独裁者」から離れるとしていたPythonの生みの親であるGuido van Rossum氏が仲裁し、提案された変更を受け入れる決断を下している。
https://developers.srad.jp/story/18/09/14/0935201/ Python終わったな
こんなん1つ認めたらどんどん汚染されていってまともに書けなくなるだろ
>>590 どこからslaveが削除されるっていう話なの?
IDEにHDD繋ぐ時もマスター、スレーブと言ってたね
>奴隷制度を連想させる「master」「slave」という単語を削除が要望されてしまったという。
こんな要望するやつ絶対プログラミング向いてないだろ
やっぱPython色んなやつに使われてるんだな
【IT】奴隷制を連想させるとして、Pythonで「master」「slave」といった単語が削除される
http://2chb.net/r/bizplus/1536925223/ slaveよりworkerやhelper、masterよりparentの方が役割や位置関係が分かりやすいけどね
モンティパイソンのブラックさを見習ってほしい
ブラックを笑いに変えないと
>>582-588 Ruby では、適当な作業フォルダへ移動してから、コマンドプロンプト・PowerShell で、
ruby -run -e httpd . -p 4444
これで、PC 内に、WEBrick サーバーが起動するから、
その作業フォルダ内に、index.html があれば、
ブラウザでアクセスすれば、そのHTMLページを見れる。
http://localhost:4444/ サーバーを止めるには、Ctrl+C を押す
君は、HTML, CSS, JavaScript を知らないの?
Ruby では、適当な作業フォルダに、index.html がある場合、
Selenium::WebDriver で、サーバーを立てずに直接、HTML へアクセスもできる
ローカルPC のファイルには、絶対パス、file:///何々でアクセスできる。
file:///何々/index.html
options = Selenium::WebDriver::Chrome::Options.new
options.add_option(:detach, true) # ブラウザを操作しない
options.add_argument('--start-maximized') # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 30 # 要素の検索の timeout
index_url = "file:///" + File.join(__dir__, 'index.html')
driver.navigate.to index_url
>>600 もう受け入れちゃったから今更取り消せないでしょ
しかも大きな話題にもなってしまったし
Python終わったな
クラス継承でsuper()についての質問です。
https://pastebin.com/eHYGS1Vq super()してるのに親クラスの_init_が実行されてないのはなぜでしょうか?
久々にpandasをアップデートしたら、日本語のパスもファイル名もそのままでは使えなくなってるんだね
と書こうと思ってたら似たような話題が上にもあった
一気に不便になったわ
もしかしてpandasじゃなくてpythonの問題?
つか初心者スレと間違えたのでスルーして下さい
>>603 どうしてそうなってるのか知らんけどsuperの第一引数はBを入れないといけないようだ。
>>606 ホントだそれだと思い通りに動きますね、ありがとうございます
この引数はoverrideするクラスじゃなくてされるクラスを入れるのか、そんなの自明なのに謎仕様ですね
まずsuperという関数名の意味から考えてみろよ
つか引数はPython3なら省略可だし
RailsよりDjangoの方がしっくりくるかな...
>>550 だが、ファイル一つで管理できるのは楽だべ
定数変数関数クラスの名前はキャメル、スネークどっちがよいの?
定数は大文字にするって暗黙のルールがあるみたいだけど、kiyoshi_name(kiyoshiName)をKIYOSHINAMEにすると分かりづらいから論外だと思うんだけどどう?
>>614 クラス、例外の名前 -> キャメルケース
変数名、関数名 -> スネークケース
PEP8というコーディング規約に書いてあるので読んでみて
ptpyhon3みたいな、分かりやすいUIのPython3インタプリンタでおすすめのはありますか。
ptpython3もいいんですけど 違うものを試してみたいです。
>>612 パスを格納した定数は「大文字1文字_」ってルールにしてる
ディレクトリなら D_json
ファイルなら F_setting みたいな感じ
>>617 参考までに、パスだけ特別扱いにするのはなぜ?
パスの話はあくまで一例ということでしょ
他にも、変数の種類別とか、文字列のエンコーディング別とかにも
プレフィックスやサフィックスをつけたりすることはあるよね
>>615 >>617 サンクス一文字目にプレフィックス付けるのはとっくに滅んでると思ってた
一文字目にプレフィックス付けたらもはや一文字目やないとゆう完全無欠なる矛盾w
設定値に"master"、"slave"使ってるアプリは差別者扱いされたりするのかな
そういや昔iOSアプリで独島は韓国の領土ですとかなんとか
こっそり書いてある韓国製アプリが見つかってたけど
見えない部分なら酷い奴色々ありそうだよな
一文字目以外に付けるプレフィックスを見たことがない
>>624 前にくっつくのがプレフィックスで、後ろにくっつくのがサフィックスです。
中間にくっつけるのは何て言うのか知らんけど。
そもそも中間に付けてしまうと元が何だったのかまで判らなくなるからな。
>>625 はあ?召使いに罵られる方がいいに決まってるだろ
>>625 英語圏だとSMはサドマゾではなくスレイブとマスターの頭文字と聞いたから矛盾では無いな
なら、国外でMicrosoft社をMSなどの略せないのか
WindowsでRuby開発は難しいらしいけど、
Pythonも難しいの?ましなほう?
公式インストーラーでインストールして仮想環境作ってpipで欲しいライブラリ入れるだけ
windowsでも普通に動く
Visual Studioインストールすると付いてくる
anacondaのライブラリの9割ぐらいは結局使わないから必要なものだけ入れた環境作った方がいい
Dataframe(Series)で、
m f
0 0 0
1 0 0
2 0 0
3 1 1
4 0 1
5 0 1
6 1 2
7 0 2
8 0 2
9 1 3
10 0 3
11 0 3
df['m']があったとして、df['f']を作る方法が分からない。
分かる人教えて下さいm(_ _)m
Dataframe(Series)で、
index m f
0 0 0
1 0 0
2 0 0
3 1 1
4 0 1
5 0 1
6 1 2
7 0 2
8 0 2
9 1 3
10 0 3
11 0 3
df['m']があったとして、df['f']を作る方法が分からない。
分かる人教えて下さいm(_ _)m
>>639 cumsumで累積和が取れる
df[“f”]=df[“m”].cumsum()
>>640 ありがとうございます!
今まで、リストに変換して、for文で足して、
Dataframeにしていたので、
1行ですんで助かります(^ ^)
python のdataframe型の値を、
bokehのCustomJSのcode=""" """)内で、
strinng型にする方法はありますか?
callback = CustomJS(args=dict(source=source), code="""
var dc = source.data;
var aaa = dc['time'][100].toTimeString();
""")
ではうまくいきません。
aaaをstringにしたいのですが。。。
callback = CustomJS(args=dict(source=source), code=f"""
var dc = source.data;
var aaa = "{dc['time'][100].toTimeString()}";
""")
関係ないけどbokehって言葉、日本語のボケ(写真のボケ)から来てるんだよな
なぜか英語でも使われるようになった。そのうち5ch用語も英語になったりして
Windowsでテキストファイルの末尾をちょっと確認したくて
LinuxのtailコマンドのようなものをPythonで作ろうと思い立ち
以下のロジックで組みました
・すべての行をリストに取り込む
・len()でリストの要素数を把握し、添え字で末尾から指定分の要素を参照して表示
しかしこれだとファイルが巨大な場合、HDDが長時間ガリガリ言って使い物になりません
メモリを食いつぶさない良い方法があれば教えてください
>>650 f.seek(-10, 2)でファイル末尾から10バイト目に移動して f.read(1) とかする。f はファイルオブジェクト
>>650 俺はpythonわかんないのでpythonでの書き方がどうなるかはわからないが、要するに最後の10行とかが最終的にバッファにあれば良いだけだよね。ならばその行数だけのバッファがあれば良い。
一行読んでバッファに入れてというのの繰り返しになるが、バッファに既に限界まで入っているなら最初の行を捨ててからバッファに入れる。という風に作っておいて、全行読み切ったら最後にバッファの内容を全て出力すると。
ファイルの一括読み込みではなくて、動画みたいに、Stream で読み込めないのか?
例えば1行ずつとか、バッファサイズ分だけ読み込んで、処理したら、即捨てるやり方。
つまり、今処理している部分しか、メモリに置いていないやり方
一括読み込みでは、ファイル全体がメモリ中にあるから、大きいファイルの場合に困る
何でシーケンシャルアクセス(ファイルの先頭からアクセスすること)が前提になってるの?この場合は末尾ってわかってるんだからseekでランダムアクセス(任意の位置からアクセス)すればいいと思うけど。
テキストファイルの最後の10バイトじゃなくて最後の10行を見たいからじゃね
末尾4kb読み込んで後ろから解析、10行分に満たなければさらに手前の4kbを読み込んで、とやっていけばいいのかも。
seekで下からアクセスするとして
結局改行が見つからずにファイル冒頭まで読むハメに
>>659 間違えてバイナリファイルを開いちゃうと起こり得る事だな。
テキストファイルでも改行が LF ではないとかの理由で起こる事はあるが。
reversed iterator を file object に対して使う
ファイルをSSDかRAMディスクに移動させてから全体read
>>662 seek使わないとしたら全部悪手やてw
Debian 9.5のpip3 9.0.1で
$ pip3 list --outdated
とやると
Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 157, in run
packages = self.get_outdated(packages, options)
File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 168, in get_outdated
dist for dist in self.iter_packages_latest_infos(packages, options)
File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 169, in <listcomp>
if dist.latest_version > dist.parsed_version
TypeError: unorderable types: Version() > SetuptoolsVersion()
というエラーが出て異常終了します。
Versionが合わないとかそういうのかなと予想しましたが、どなたか解決策などご存知ないでしょうか。
>>665 なんだ、ありがとう
でもよく見ると
>>650は readlines()使ってたりして
sum(1 for line in open('file.txt'))にするだけでも
違いそう
Cookbook 3rd 見たら出てた
ドキュメントにもそのまんまがあったよ
https://docs.python.jp/3/library/collections.html#collections.deque deque は Unix における tail フィルタに相当する機能を提供します:
def tail(filename, n=10):
'Return the last n lines of a file'
with open(filename) as f:
return deque(f, n)
>>669 簡潔でいいね!でもこれメモリに全部読み込むんじゃないかな?
頭から1行づつ詰め込んでいって指定数超えると
一個消して一個追加しているみたいでメモリは問題ないけど
巨大なファイルならやっぱseekは必要だね
>>670 読み込む度にmaxlenを超えた分は捨てるから結果として全部読み込むけどメモリーはそれほど要らない
>>671 >>672 なるほど、メモリの問題はクリアしてるんですね。でもやはりシーケンシャルアクセスなので、計算量O(1)で解ける問題をO(N)で解こうとするのは違和感があるかな(自分には)。
最近はO(N)くらいなら気にしなくてもいいという風潮なのかな?
数学が得意じゃ無いとPythonは難しいですか?
AIに興味があります
AIで妹を作りたいです
>>673 最近も昔も、それに要する時間が許容できる時間を下回るならokということだよ。
計算量のオーダーだけでなく、具体的に実際にかかる時間はどうなの?
>>673 単に
>>670に答えただけ
あとseek使うにしても
>>658みたいなことをしないと駄目だからO(1)と言うのはちょっと違和感ある
>>676 仮に全体が一行の巨大なテキストやとしたらO(1/N)やぞw
>>677 ごめん、何が面白いのかさっぱりわからん
>>674 中国軍に入れ
日本と共同研究させてもらえるぞ
高校数学の基礎すらよく分からないのですが、PythonでAI作れますか?
>>682 keras使えば余裕
層重ねてパラメータ決めるだけだから
みんなのpython終わったばかりの初心者ですが画像認証はオライリーの本でいいですか?
勘なのか…
何か凄い計算とか必要なのかと思って敬遠してたわ…
courseraの機械学習コースではニューラルネットに関しては隠れ層の数は基本的に1つで十分
隠れ層のユニット数は入力と同じ〜数倍程度で十分と言っていた
特に明確に数式とかでは説明されていなかった気がする
>>679 面白さやなく計算量がわからんのやろw素直にそう言えばええやんw
>>692 マジで言ってるのか、引っ込みつかなくなったのかはっきりしてくれ w
そいつちょっと前から多数のスレでちょっかい出して回ってる半角単芝ガイジだからスルーしといて
>>694 引っ込みつかんのはおまえやろwムリすんなw
>>696 了解
粘着してるみたいだし、本人渾身のギャグだったんだろうな w
seek はバイナリファイルだから、100 バイト目とか、位置指定。
メモリ位置は、計算で求まるから、計算量O(1)
テキストファイルは改行区切りだから、ファイルの先頭から、改行を探して数える必要があるから、O(N)
例えば、100, 200 バイト目に改行があるって、
あらかじめ改行の位置がわからないし、記録されていない
別のファイルに、改行の位置を記録しておけばよいかも。
JavaScript などのデバッグで使う、map ファイルみたいに
なんで、無理にPython使うの?
tailコマンドの出力を受け取った方がよくない?
別にiOSやandroid上で実行させようとしてるわけじゃないんだから
実行速度だって、インタプリタのPythonよりtailコマンドの方が速いでしょ
初心者のうちはなぜか外部プロセス使うのダサいみたいな謎の観念があるよね
気持ちはよくわかる
もともと
>>650はwindowsでやりたいんじゃなかったっけ
pip3のlistサブコマンドのオプションに--userがあるけど
この反対の挙動をする--systemみたいなオプションってあります?
つまりpip3 list --systemとするとSystem Wideにインストールされたパッケージ一覧が表示されるという。
650です
いろいろアドバイスいただきありがとうございました
シークを使ったファイル処理には疎いもので、dequeを使うやり方でやってみます
Windowsにtailコマンドがあれば良かったんですが・・・
Ruby では、tail -f の機能の、file-tail というgem を、誰かが作っている
たぶん、Python でも、誰かが作っているのでは?
>>707
とりあえずseek使ったtailの最低限の実装はこんなの。必要ならバッファが足りなかったら増やす処理やエラー処理を追加してね。
def tail(filename, n=10, buf_size=4096):
with open(filename, mode='rb') as f:
file_size = f.seek(0, 2)
buf_size = buf_size if buf_size < file_size else file_size
assert f.seek(-buf_size, 2) == file_size - buf_size
for line in f.read(buf_size).decode('utf-8').split('\n')[-n-1:-1]:
print(line) >>707 追記
msys は丸ごとダウンロードして来なくても
git for windows を入れると入ってくる
msys-git とか git bash で充分
マなら git くらい入れとけ
ちなみに utf-8 のファイルも直接読めて快適だ
>>707 Power Shell 3.0で
Get-Content ファイル名 -wait -tail 行数
がtailコマンドと同じことやってくれるよ
なんでMicrosoftは独自色出したんだろ
差別化したいんかね
タイプ回数増えて面倒
負担少ないキーボード買わせる腹積もりか?!
Get-Content のalias として、cat が使える
入力補完があるから、長くてもよいけど
>>717 gc -w{tab} ファイル名
※ {tab}はタブキー
でいけるのでtail -fよりタイプ数は少ないよ
本立ち読みしたけどなんか数学的すぎて訳わからん
CとかJavaみたいな文系で高校数学もアヒャヒャな俺でも理解できる言語とは違うんだな
>>721 LLはサッサとやりたことを片付けるために作られてるから
ライブラリを使うとこだけコピペして使うとこから始めると
だんだん感覚に慣れていくと思う
Haskellとかもっとわけわからんぞw
LL は軽量言語。つまり動的言語
AI・数学・統計に関係ないなら、Ruby の方が簡単。
だから、Web 系は、Ruby on Rails が多い
Pyキチ君、
マッチポンプのために図らずもRubyの宣伝をしてしまうの巻き
>>723 Lightweight Language ね
google colaboratory上で、google driveに保存してあるmp4動画google driveをマウントして
再生させています
https://stackoverflow.com/questions/18019477/how-can-i-play-a-local-video-in-my-ipython-notebook のtop answerにある方法で再生はできるのですが、ファイルサイズが大きい(20MByte以上)と、
base64.decode('ascii')かIPython.display.HTML()あたりでMemoryErrorが発生して、ランタイムが切断されてしまい、
再生できません
b64encodeされたデータを複数のchunkに分割してdecode('ascii')したものをつなげても、
HTML()で同じエラーになります
google driveファイルを共有設定にする、ファイルを分割しておく、以外で再生する方法は
ないでしょうか?
そもそも、google drive, Python などは、動画のストリーム再生に対応しているのか?
これは、google colaboratoryのundocumentedな制限じゃないですかね
おま環影響を排除するためにazure notebookにmp4をアップロードして試してみたけど、
colaboratoryでruntime restartされた40MByteくらいのmp4もjupyter notebook上で再生できた
制限内容がよくわからないからそのうち嵌りそう、というかcolaboratoryではよくあることかも
pythonプログラムをpythonインタプリタなしで実行する方法ってある?
>>734 exe化ってpythonがインストールされてなくても動くの?
python.dllってのがおまけで付くけど実質インタプリタ
>>738 どうやって作るの?
py2exeじゃダメでしょ
えっ
py2exeでもpyinstallerでも単品exeに仕立てられるぞ
それぞれのドキュメントみろ
あるいはどっか
web上にソース貼ると
ある程度挙動をエミュレートしてくれるサイトなかったっけか(はげしくうるおぼえ)
Dataframeのカラムの一つのdf['fff']の中身が
0,1,2,3,4,5,6,.........と番号順に増えるようにするにはどうすればいいの?
こどもの行事写真なんだけど、2000枚くらいあって、その中から自分の子供の画像だけ抽出することってできる?
それはAIを使ってプロが作るやつやで
自作するようなもんじゃない
>>745 googleフォトにアップロードして、ある程度(数日?)待つと
googleのAIが映っている人物で分別してくれるよ
自分で制御したいならAWSのRekognition使えば一発だな
そんな誰でも考えることに対して、わざわざ自分で膨大な手間をかけて既製品より遥かに劣る再発明をするのは阿呆
もっといえば画像認識の分野なんて研究されきってて、一般的なタスクは基本的に既製品で十分すぎるほどにカバーされてるよ
>>747 ありがとう。じゃあ、そこまでをパイソンにして貰えばいいわけね。
>>747 macOSでも「この人物は誰々ですか?」ってのがあったねー
自動的にパターンマッチングして分類してくれる機能
>>744 おい、気になるから答えも書いてくれよw
これからpythonの勉強しようとしてる初心者ですが
開発環境はどういうのがいいのでしょうか?
インストールする際についてきたIDLE.appだとなんだか使いにくいのです。
>>754 vscore、pycharmから選べ
上級者を目指したいならvimかemacs
お返事ありがとうございます。
以前atomがいいと言われたことがあるのですが
これはどうなのでしょう?
学生ならpycharm一択かもしれん
vimキーバインドにすれば玄人感でるし
ツイッター観察板なんてあったんだな
ネットウォッチから分離したのか
cvxoptのソルバーのsocpについてで
||Ax+b||≦cx+d
の拘束条件と同時に
Bx=1
みたいな等式の拘束条件を同時につけてsolveさせたいのですが
どのように書けば良いのでしょうか…?
初心者なりに調べては見たのですが、ノルムの不等式の条件づけしか例に挙げられていないものが多くよく分からなくて詰まっています…
>>764 Julia/JUMPに移行しちゃってるので試してないけど、
公式ドキュメントにそのまま書いてあるんじゃないですかね?
http://cvxopt.org/userguide/coneprog.html#second-order-cone-programming cvxopt.solvers.socp(c[, Gl, hl[, Gq, hq[, A, b[, solver[, primalstart[, dualstart]]]]]])
で、AとbがAx = bでの制約条件データ
Aはcvxopt.matrixかcvxopt.spmatrix、bはcvxopt.matrix
maxima, C++, tcl/tkでやってたけど、今さらsympy知ってこれ便利と飛びついてみたのだけど、
sympy.vectorとsympy.physics.vectorとか微妙に機能の違う類似ものがダブって存在してたりでつかれる。
sympyサブモジュールは個々の領域の人の、こんなん作ってみた!の寄せ集めなので
閉じた世界と考えたほうがいい
統一されてないものなら、python/numpyのrandintとか、numpy/pandasの標準偏差が
自由度修正済みかどうかとかメジャーパッケージでもいろいろあるね
ところで、maxima使いがsympyつかうならsagemathにいったほうがいいと思う
Pythonの入門書やってる途中でコマンドラインのウィンドウにファイルを指定してから実行するってのが出てきたんだけど、「コマンドは有効でありません」とか出てきて訳分からなくなってる
どうすればいいですか
>>764です
質問した内容は
>>765の方のおかげで無事解決しました!
ただGqで宣言するリストの中身の行列は複素数は扱っては行けないんですかね…?
エラーを見る限りではサイズか型が悪いのかな?と思いサイズを確認したのですがおそらく問題なさそうだったので、質問をしにきました
複素数扱えないSOCPならもうcvxopt使えないんですけど、どうなんでしょうか…?
>>775 visual studioとvisual studio codeを間違えてただけだった…
>>776 その問題は、socpですらないんじゃないの?
PythonやるのにCとかJAVA知っとく必要ありますか?
>>780 必要ない
俺はCやJavaを何年も勉強して身につかなかったCOBOL使いだが、Pythonはスッと頭に入った
おそらくこれほど理解しやすい言語はこの世に存在しない
オブジェクト指向が全然わからん、classとか全く使ってない
みんなオブジェクト指向してるんですか?
>>784 そんなものは必要ない
コードの上からずらずらとやりたいことを書くだけで良いのがPythonの強み
Javaプログラマがクラス設計に頭を悩ませている間に
Pythonプログラマはそこそこ動くコードを書き終えているだろうね
jupyterlabのvim拡張ってキーマップ設定とかできる?
notebookの方だとディレクトリの深い所にあるvim.jsを書き換えれば好きにキーマップ変えられたけど
>>787 Javaでもmainメソッドの中にずらずら書いてそうだなあんた
Javaにリファクタリングって本があるから立ち読みでもして見てみ
OOPがどう便利なのかシンプルに分かるから
Pythonプログラマーになるのに基本情報技術者資格勉強する必要ある?
アルゴリズムとかJAVAとかややこしそうなんだけど
少なくとも現状の国内では、Pythonの本職エンジニアにはほぼ例外なく基本情報(またはその上位互換)を持っているor取ろうと思えば楽勝で取れる人しかいない
米国だとPythonはお子さま言語でもあるからもっとレベルの幅は広いんだろうけど
>>792 何で今日はこういう質問多いんだろ
言語はツールであって資格ではない
やる気と毎日コードを書く環境にあるならば誰でも身に着けられる
ただしPythonだけで食っていくことは無理
日本ではマイナーだから仕事がない
いや最近はDNNや機械学習の普及により
研究開発分野でPythonやnumpy, tf, Flaskが要件の案件があって、
俺はそれでおまんま食べてる
>>797 DNNや機械学習のバックグラウンドがあってはじめてPythonで稼げるって言ってるのと同じだろソレ
資格よりもPythonで稼げる市場を見つけるほうが大事
>>784 C言語に当てはめていうなら構造体とそれを扱う関数みたいなものなんだけどな。
>>805 プログラムの出力結果をWEBに出したいという要求もたまにあってね。
Bootstrapなどと組み合わせて使うことになりそう
Webはあまり得意じゃないからまちょっと勉強しなきゃなんだけれど
だったらまずHTTPの勉強するほうが先
小手先のインチキフレームワークなんか使うから
どういった仕組みなのか全然分からないワケ
わかった?
簡単なHTTPサーバー作るとこから始めなさい
簡単なのならすぐに作れる
そうすればどういった仕組みになってるかすぐに分かる
>>807 PHP7とか昔はCGIを結構やってきたから基礎は多少分かっているつもりだけど
FlaskとBootstrapまたはJQueryがほぼ要件として決定らしくて
FlaskはともかくBootstrapやJQueryははっきりいって勉強してこなかったから
社内で出来そうな人材を探し中さ
pydoc -pでブラウザでpydocを見れたりするじゃない。
ああいったpythonの持っているHTTPサーバ機能で要件が満たせてしまえれば
いいんだけれどもね…
ローカル計算機でhttpサーバー動かして
ローカル計算機のUAでそれに接続してインタラクティブに表示するワケか
表示するデータがローカルの計算機ですべて完結するなら
やり方としてそれはそれで問題ないともいえる
いちいちサーバーをたてないで
htmlにjavascriptつっこんでできないぐらいの
複雑さが要件にあるかどうかはオレには分からんからなんともいえない
Djangoでクエリ使うのって、SQL直打ちに比べてものすごくもどかしいし制限多い気がするんだけど、気のせい?
気のせいじゃない
ORMはどのフレームワークや言語においても糞
>>805 quiverとかいうのflask使ってるみたい
質問なんだけどPythonだけで食っていくのは可能?
pythonは食べられるよ、美味いらしい。でも食べられた人もいるからきをつけろよ!
大物だとかば焼きにすれば数百人分くらいは食えるんじゃないかな
>>818 そうなんだ
でもなんかアレだし趣味に留めておくわ
ツールとしての最適化を図ってる感じだからな
何かの専門知識+Pythonで成立する
社内環境からpip install しようとすると、リトライを繰り返して失敗する。謎だ。
>>824 set proxy でググれば出てくると思われ
>>825 ユーザー名とパスワードは端折っていいのかな。とりま出社したらやってみよ、ありがとう。
>>826 社内のプロキシで止まってるからユーザー名とパスもいる
書き方のフォーマットはぐぐれば何種類かある たしかこんな感じだった
set proxy
https://ユーザー名:パスワード proxyserver ってcmdで入力してからpipすれば入るはず
>>827 詳しくありがとう。
社内環境だとプロキシはpacファイルの自動構成でやってて、ユーザー名とパスワードがあるかどうかわかんないんだよね。ドメインと同じでいいのかな。
>>789 コンストラクタが数千行って話を思い出した。
>>779 以下のような形式を解こうとしています
(Hは共役複素転地)
min c^H*x
s.t. ||A*x||<=b^H*x
||D*x||<=e
F*x=g
の形式なのですがcvxoptのsocpでは解くことは出来ないのでしょうか?
数学もプログラムも苦手で…
>>831 min の部分がおかしいんですね
自己解決しました
現在の問題としてmin の部分がない時、s.t.の条件を満たすxが存在するかどうかのfeasibilityチェックはcvxoptでは出来ないのでしょうか?
>>832 minがおかしい以前に、複素数には順序がないので大小比較できません
なので、複素関数の最小化というのは意味がありませんし、制約条件内で
不等式に複素数がそのまま出てきた場合は、
意味のない問題であるか、implicitに両辺の「計算結果は実数になる」
という制約条件を追加しています(質問で見るのはいつも前者ですが)
たぶん後者を扱えるものはないので、実数部分と虚数部分にわけて
両辺の虚数部分の係数が0になるという制約を追加したより大きな実数問題
として扱うことになるのかな
実数問題に直したあとのfeasibilityは、目的関数を0にでもして解けばいいです
今頃pathlib(3.4からなのか)を知ったんだけど
この辺りやたらと機能ダブってるけど
後々何処かに一本化されるのかな?
ユーザ向けの統一試みたのがpathlibで、別にこれまでのものをなくすわけでもなく
ファイルパスを抽象化しようとするのは昔から数々の言語が試みて
結局「パスは既に優れた抽象化であり、オブジェクトにすると余計に不便になるだけである」という結論に至っているのにな
Python開発陣の中にも「俺は他のアホとは違う」という中二病患者がいたんだろうけど、誰か止めなかったんだろうかとは確かに思う
結局パス文字列を引数に渡す代わりにオブジェクト作らないといけないだけ、くらいにしか使われてないね
Path操作がos.pathとosとglobに散らばってるのをまとめただけだろ
PEPの趣旨を読んで言ってるとは思えないな
>>837 統一するのは結構なことだけど、やり方の筋が悪いわ
既存のライブラリをPathに対応させようとして元々パス文字列を受け取るようになってた他のモジュールの引数をPathを受け取れるようにした
静的型言語ならPathに対応してるかどうかは明らかだけど、動的型だとドキュメントを注意深く確認しないと分からないから、
みんな心理的に確実な方(文字列)を選んでしまうもんなんだよ
そうなってしまうといちいちインスタンス作るのが面倒臭いだけで、単なるパス文字列操作のユーティリティ関数群で十分だったってことになる
そしてライブラリの開発者には文字列とPathの両方に対応する無駄な手間が生じる
統一するはずが、更に重大な不統一を生じさせ、結果的には明らかに不利益の方が大きい
Path便利じゃないか?
Windowsでもマックでも同じコートでパス指定できるし。
ID:fTMxnY19みたいなバカには使えないってだけの話だろ w
ちゃんと使えば普通に便利
Pathをちゃんと使うということは、Pathを単なるユーティリティとしてではなく、
ファイルパスを受け取る引数などインターフェイスレベルで統一的にPathを使うってことで、その世界こそがPathの目指したものなわけだけど
その意味で本当にちゃんと使ってるの?
pathlibは便利だけど、Pathオブジェクト作る前にos.path.exists()やos.path.isdir()で
チェックするから結局os.pathは使うよね?
>>842 > ファイルパスを受け取る引数などインターフェイスレベルで統一的にPathを使うってことで、その世界こそがPathの目指したものなわけだけど
なんでそんなアホな考えになるんだよ w
単に便利な機能だけ使えばいいだろ
単なるパス文字列操作ユーティリティとしてだけ使って文字列に戻してしまうんだったら、オブジェクトである必要は全くないわな
アホなもクソも、実際Pythonの標準ライブラリはだいたいの場所でPathをそのまま受け付けるようになってるよ
>>845 > 単なるパス文字列操作ユーティリティとしてだけ使って文字列に戻してしまうんだったら、オブジェクトである必要は全くないわな
だからそんな時は使わなきゃいいだけだろ
いちいち使えない場合を書いてマウント取った気になるのやめたら?
アホにしか見えないよ w
リファレンスも目を通さずにケチつけようとするくらいどうしようもなく頭悪いんだから
最新の言語機能にいちいちついてこなくていいんだよ
ロートルは死ぬまでレガシーコードを書いていればいいの
やっぱりパイソンつかってるのはガイジ脳しかいない
むしろガイジ脳がどんな場面でも使えるように
>>845 みたいなインターフェースになってる
でも気になって覗きに来ちゃう半角ガイジなのであった
pathlibでパスの起点を任意に指定した相対パスが扱えるらしいけど、これバグってんの?
>>> import os; import pathlib
>>> os.getcwd()
'C:\\tmp\\hoge\\fuga'
>>>
>>> s = pathlib.Path(r'C:/tmp/hoge/fuga')
>>> s
WindowsPath('C:/tmp/hoge/fuga')
>>> s.absolute()
WindowsPath('C:/tmp/hoge/fuga')
>>>
>>>
>>> s2 = s.relative_to(s.parent) #C:/tmp/hogeを起点にした相対パス作成
>>> s2
WindowsPath('fuga')
>>> s2.absolute()
WindowsPath('C:/tmp/hoge/fuga/fuga') #変なパスになっちゃったw
>>>
>>>
>>> os.chdir(s.parent) #cwdを変更しないとダメ
>>> s3 = pathlib.Path(s.name)
>>> s3
WindowsPath('fuga')
>>> s3.absolute()
WindowsPath('C:/tmp/hoge/fuga') #OK
>>>
relative_toでcwdの変更までやれよ、もしくはPathオブジェクト毎にカレントディレクトリ保持しとけよ
pathlibにcwdを変更するメソッドが無いのもダメ、こんなんでpathlibで統一とかありえないがな
>>851 ガイジは使わなくていいんだって
ガイジだから理解できないかな?
>>851 Pathは単なるパス文字列のラッパーであり、ファイルシステム上の特定の要素を指しているわけではない
まあ実際851のような勘違いをする初心者は多いだろうね
単に文字列を引数に渡す関数群であれば起こり得ない間違いであり、pathlibの設計の筋の悪さを示す好例だな
最初はPath文字列操作のユーティリティ群で十分といっていた人が、
Path文字列操作のユーティリティ群であるpathlibを使ったら、
文字列操作を大きく超えた要求へ
>>839 レジ袋有料化でゴミ袋買わされてその中にレジ袋入れて捨てる環境省アホだよな
>>840 エンコとシステムロケールのgdgdはどうなん
>>853-854 Pathは文字列操作のラッパーだけじゃないよ、初心者は知らないかもしれないけど
ファイルのチェックやファイルの作成などのメソッドも提供している
パスはただの文字列だけどファイルシステムと密接に関係しているのだからファイルシステム関連の
ユーティリティは当然必要で当然の要求
relative_toはparent情報から相対パスを作るのに、元の絶対パスに戻すときにcwdを使うのはおかしい
ここらへんは文字列操作とファイルシステムがごっちゃになってて筋が悪い
文字列操作に限定するならparent情報を保持しておいて、絶対パスを作る時にparentを使うべきだし
ファイルシステムと連動するならcwdの変更を行うべき
>>856 俺はシステム作るときのフォルダとかファイルは英文字しか使わないようにしてるよ
If 条件文 and 1: という書き方のif文を見たのですが、実用的にはif 条件文:と同じですよね?
こういう風に書くメリットって何かあります?
>>853 ガイジは使わなくていいんだぞ
Twitterで自分から肥溜めに近づいてクサイクサイ大騒ぎしてるガイジフェミと同じだな
>>859 一時的にそのif文を無効にしたくなったときにand 0に書き換えるだけで済む
>>861 素早いご返信ありがとうございます!
目から鱗です
プログラミング界はクレバーな方が多いですね!
3のstrとbytesってホントに改良なんかね微妙に使いにくい
2の時代の方に慣れ過ぎたから可笑しく感じるのかな
>>862 いや多分それ書いたのプアでフールな人だから真似するなよ
>>865 それは真逆
Rubyの文字列は内部表現がエンコーディング依存で、どちらかというとPython2に近い考え方だ
Python3の内部エンコーディングを一律unicodeに揃えてしまうやり方はJavaや.NETなんかの割とビジネス的な系統
シェルスクリプト的な使い方だと勝手な変換が入らない方が使いやすいこともあるんだけど、
Pythonはスクリプトの中では単独できっちり書くという指向が強いから後者のほうが適してるだろうね
>>860 肥溜めがクサイのは当たり前のこと
同様にpathlibに欠点があるのも当たり前のこと
そして欠点は使っているからこそ気づくもので、その欠点を指摘すると怒り狂う方がカイジじゃなかろうか
自身の能力の低さ故に望まない結果が得られただけのことを欠点と言われても困る
「初心者でも使えるように」と言うが、初心者のレベルの設定にも下限がありどこまでも下げていくとむしろ複雑怪奇な構造が生まれてしまう
「初心者でも使えるように」などと誰も言っていない、それは低能なキサマの心の叫びだ
オレは何にでも欠点はあるという当たり前のことを言っているだけだろ?レスを見ろ!
キサマはキサマが作った妄想と戦っているのだ、その妄想はキサマ自身だ、そんなに自分を責めるな!
最近Pythonの勉強を始めました。
for文を使った行列のかけ算ですが、
x=np.array([[1,2,3,4]]
y=no.array([[5],[6],[7],[8]])
s=np.array([[0]])
for a in range(0,4):
for b in range(0,4):
s[,]=s[,]+x[,]*y[,]
後半の数値の入れ方が分かりません
ご教授ください
scipy.matrixて使ったことないけど、どういう点が優れてるの?
>>859-864 If 条件 and 0:
If 条件 and 1:
このどちらでも、先に条件文が評価されてしまうから、
この条件文に、何かの状態を変える副作用があると面倒だから、逆に書くべき
If 0 and 条件:
If 1 and 条件:
0 の場合は短絡評価だから、条件が評価されないから安全
>>877 逆に評価させたい場合もあるから一概にそうとは言えない。
>>878 直後にFalseにするものをわざわざ評価させるというのはどういう状況を想定しているの?
0 / 1で論理演算するほうが違和感あるなぁ。
Pythonの論理演算子は演算結果がTrue / Falseになるとは限らないから。
>>879 条件部が関数になってて実行だけはさせたいことはあり得そう
>>880 0=False、それ以外=Trueだから同じことでは?
そもそもFalse=0、True=1なんだからさ
>>881 その判定文自体がFalseになってしまうと、あんまり意味が無いんじゃないのかなぁ。
デバッガー通してその関数の結果を見ること自体は可能だけどね。
>>880 Pythonのソースコードにおいては、True=1、False=0 という扱いになっているようだよ。
http://d.hatena.ne.jp/SumiTomohiko/20070802/1186074596 こんなことが出来るなんて知らなかったわ。
>>> True + True
2
3 or 1 の演算結果はTrueではなく、3 なんだよなぁ
>>883 必要な処理ならそれ自体を止めちゃあそれこそ意味ない
返ってきた値によって何らかの表示するだけって条件文もあるし
>>885 3はTrueだからそれで良いんだってw
>>887 そういう暗黙の型変換を期待するコードが気持ち悪い、違和感があるってこと
>>877 Ruby使ってる人の頭の使い方に近いな
多少実行効率落ちても見た目に分かりやすいことに勝るものはない、的なプログラミングの格言思い出した
他言語と行ったり来たりしてると論理演算子とビット演算子がごっちゃになる
Python始めて2日目です。
mac、python3
でwebページ を保存(html)したいです。
URL指定して保存ではなく、実際にそのページにgoogle topから遷移していってcommand+sで保存したいです。
ページまでの移動はできたので、保存部分の書き方教えてください。
requestsをインスコ
getでソースをダウソ
保存
>>890 まさにそれ!
極端に実行効率落ちるのは考えものだけど、多少なら可読性を優先する。
3ヶ月後の自分のために。
requestsも外部コマンド呼び出しも邪道
標準のurllib.requestぐらい使いこなせよ
>>892 pythonからapplescriptを使って
safari で開いているページのソースを保存
勉強のためなんだろうけど
使い所がよくわからないけどこんな感じ
import os
import sys
import subprocess
cmd="""
osascript -e '
tell application "Safari"
set htmlContent to (source of document 1)
end tell
'
"""
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
a=proc.stdout.read()
f=open("/Users/noah02/Documents/safari.html", "wb")
f.write(a)
f.close()
page speed insites というページを、自動で保存したいんですよね
ページパフォーマンスのデータをだしてくれるページなんですが、出力までに時間がかかるので、requestsでやると、まだなにもデータがでてないページを保存することになってしまうんです。
完全にデータが出切った後に、そのページをまるっと保存したいです。
>>897 知らないコードが多数あるので、解読しつつやってみます。ありがとうございます!
page speed insitesというページを保存したくてやっています。
ページパフォーマンスのデータを出してくれるサイトなんですが、データの出力までに時間がかかるので、requestsで保存しても何もデータのでていないページになってしまうんです。
なので、完全にデータが出切った後に保存したくて上記を行おうとしていました。
page speed insites というページを保存したくてやってました。
ページパフォーマンスデータを出してくれるサイトなんですが、requestsで保存しても、データが何もでてないページが保存されてしまうので。
ページスピードを出してくれるサイトなんですが、requestsで保存しても何もデータのないページが保存されてしまうので。
そのページは、Ajax の非同期処理で、データを取得しているのだろう
10秒ぐらい、sleep するなどして、処理が終わるのを待てば?
それか、そのページが処理後に、特定のタグを作っているのなら、
Selenium WebDriver を使って、そのタグが現れるのを待つとか
今日の爆笑回答:10秒ぐらいSleepして待つ
クッ、、wwww じゅ、じゅww 10秒待つって・・・プップゲラww
足し算、引き算も出来ないと話にもならんわ
てか、数学の定義があやふや?w
>>909 数学は必須では無いが、パズル脳みたいな「アレをするためにこう変換する」的な脳の使い方が求められて、その訓練に数学が適してる。
あと英語出来てた方が情報収集で有利。
(何と無く大体の意味が分かる程度でおk)
pythonが簡単とか言うけど、文法が他の言語に比べて簡略化されてるだけで、プログラミングの難しさ自体はどの言語を使っても同じ。
差があるとすればライブラリの多さとかで、pythonはその点では優秀。
パ、パ、パ、、パズル脳! アレをするために交換? ジョジョリオンの等価交換か!?
アレをするために交換が必要だなんてジョジョリオンの世界やでぇー プッハーww
アレをするために必要なのは勉強じゃボケェーw
>>911 > 足し算、引き算も出来ないと話にもならんわ
それ、算数ちゃいますの?
>>916 >群論
なんかいい教科書ありませんか?素人が最初からゆっくりと読み進める面白いものを
ないな
そして群論の教科書といえば間違いがつきもの
誤植のない群論の本などない
今日の爆笑回答:Pythonやるには群論が必要
ヒィーーww お、お腹痛いぃーwww
必要では無いけど、言われてみれば通じるものはあるよ。
群論は単なるオブジェクト指向
例えばIterableインターフェースを実装すれば
それはループできますよっていう話
○○インターフェースを持っているものは
○○とみなすことができるとか言う話を数値に限定しただけ
知らないなら書かないでくれ
オブジェクト指向と対応させるのは無理があるし、
群論は数値に限定されてないから
順序群とかComparableインタフェースを実装したオブジェクトに過ぎないからね。
Comparable インタフェースがあれば比較ができて大小が決まるから順序群になります
群演算を決めずに、群を語られても、演算固定されないと群は語れないよ
あと、
Aは群の一例である
を
群とはAにすぎない
と書くのは数学以前の問題じゃないかね
どっちかと言うと、演算を決めて作るのがプログラミングじゃないかな。
0と1の羅列が画像や文字列になる様に演算する演算子を作るのがプログラミング。
バイナリエディタで赤を表示する箇所にFFを書き込むのと、ペイントで該当箇所に赤い点を描くのが同じ、みたいな可換性があるからプログラミングが成り立つんだと思う。
新人「チッス先輩、自分プログラムは大学の授業でC言語をやったくらいッス よろしくオナシャッス!」
先輩「・・・じゃあ、まず群論からだな」
新人「え? 群論? 自分サルでも分かるPython買ってきたッスけど・・」
先輩「Python始めるならまずは群論だよ、脳をパズル脳にしなきゃ」
新人「え? パ、パズルッスか?」
先輩「じゃあ、まず群演算を決めようか」
新人「?・・・ッス」
>>928 >先輩「じゃあ、まず群演算を決めようか」
先輩「じゃあ、まず群の定義から入ろうか、集合G の元 a, b の各対に対して G の第三の元(これを ab であらわす)を対応される演算が定義され、かつそれが結合律を満たし、かつ任意のGの元a に対して ae = a を満たす e が存在し、かつすべてのGの元a のそれぞれが、それぞれに対してただ一つ ab = e となる b(右逆元) が存在するとき、G は群である!」
新人「……」
先輩「早速演習にはいろうか、先に述べた群の定義から ea = a は導出できるか?a の右逆元 b について ba = e であることを導出できるか?」
先輩「じゃあ、まず群の定義から入ろうか、
Gクラス(コレクション型)の要素 a, b に対して 要素同士を引数とするメソッドfooが実装され(例 ab = foo(a, b))
かつそれが foo(a, b) でも foo(b, a) でも同じ戻り値を返し
かつ任意のGの要素a に対して foo(a, e) == a を満たす e が存在し、
かつすべてのGの要素a のそれぞれが、それぞれに対してfoo(a, b) == e となる b(右逆元) が存在するとき、
G は群である!
言い換えるとGクラスに上記の仕様を満たすメソッドfoo(郡インターフェース)を実装すれば群として扱うことができる」
>>931 >かつそれが foo(a, b) でも foo(b, a) でも同じ戻り値を返し
その前に結合律を仮定しないといけないのでは?
あと可換でなくても群たりえますよ
数学って専門用語があるだけで、その用語をプログラミング用語に
変換するだけで簡単に理解できるんだよな
ま、プログラミング用語も専門用語だから
わからんやつにはわからんがw
二項演算子 a + b というのが、言語によっては+関数とみなせる
つまり+(a, b) みたいなもんという知識も、
数学における演算とはどういうものかを理解することにつながる
+(a, b) は a + b であり
[任意の記号](a, b) は a [任意の記号] b であり
@(a, b) は a @ b と書くこともできて、
@が演算を行うための演算子でどういう演算を行うかはもちろん@関数の実装次第
Pythonのdictって二次配列としても使えるんだな
リストで作った二次配列にa[y][x]でアクセスするのがしっくり来なくて
試しにdictのキーにカンマ区切りの数値を指定してみたら普通に使えてちょっと驚いたわ
>>937 それ二次元配列じゃなくて、タプルをキーにしてるだけ
侍炎上してて草
プログラミングスクール「侍エンジニア塾」めちゃくちゃすぎるとして炎上 [857186437]
http://2chb.net/r/poverty/1540102800/ 侍エンジニア塾は邪魔だから検索結果から消える拡張使ってるわ
googleなら ハイフン付ければマイナス検索できなかったっけ?
chromeならublacklist
firefoxならpersonal blocklist(not by google)
edgeとsafariは知らん
>>942 他にもいくつか検索禁止にしてほしいドメインある
と思ったら
sejuku.net
だったわ
侍じゃねーかωωω
>>948 業務妨害だからやめて。
知恵袋とかNAVER まとめとかブロックは良くないよ!
requestsが標準ライブラリに含まれる予定ってないんでしょうかあ?
あと、日本語ドキュメントもver1から全然更新されてないです…
aiohttp使ってるやつはいないのか
別にいいけど
>>952 それほど必要とされていないということだよ
>>957 HTTP for humans
人間のために作られたライブラリだからな
* *の逆の演算を行う演算子はありますか?
求める演算子を#とすると、
a=2**10
(a=1024)
b=a # 2
(b=10)
となって欲しいです。
あ わかった
頭悪いのは底の変換公式を使って求める
>>960-961 久々にワロタ
マジレスすると
operator.inv
numpy.linalg.inv
scipy.linalg.inv
久々に意味のわかるレスを見たw
962以降レスの流れが全くわからん
>>960 算数的には「a#2」ってなってるところに入るのは
ln aって書いてlog2テイaと読む
どこがワロリどころかわからんのだが
pythonてきには
>>961>>965
これしきの質問のつづきは↓のほうが適切だとおもふ
くだすれPython(超初心者用) その39
http://2chb.net/r/tech/1535064635/ >>970 lnはeテイだった
2テイは普通にlog<sub>2</sub>
ちょっくら公式集読み直した後吊ってくる… λ
ζ
/ ̄ ̄ ̄ ̄\
/ \
//// ⌒ ⌒|
L川 (・) (・)|
(6-―――◯⌒◯-|
| ノノ_||||| |
\ \_/ /
\____/
まだ3.7を入れてないんだけど、辞書って順番維持に変更されたの?
>>989 ありがとう
そういうことか、知らんかった
キチンとチェックしないとダメだな、オレ
創始者がめんどくさくなって撤退したんだっけ
これからどうなるかねえ
dictの順序維持は、
3.6
キーワードと引数と名前空間だけで、dict一般には明示必要
cpythonの実装上は順序維持
3.7以降
言語仕様
OrderedDictとかあった気がするけど、dictが順序維持するようになったってことはOrderedDictはもう要らないってこと?
使ってこなかった人にはどうでもいいんじゃね?
設計が全く違うから、特有のmethodもあるから、
一部の人はorderedを使い続けるよ
OrderedDictの設計を新dictに近づける案は、
OrderedDictの人が却下したから共存のまま
∧,,,∧
( ・∀・) 1000ならジュースでも飲むか
( )
し─J
-curl
lud20250122190334caこのスレへの固定リンク: http://5chb.net/r/tech/1529888279/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「Pythonのお勉強 Part57 ->画像>10枚 」を見た人も見ています:
・Pythonのお勉強 Part56
・Pythonのお勉強 Part5
・Pythonのお勉強 Part53
・Pythonのお勉強 Part46
・Pythonのお勉強 Part65
・Pythonのお勉強 Part 28
・Pythonのお勉強 Part66
・Pythonのお勉強 Part72
・Pythonのお勉強 Part62 (445)
・Python3を勉強中の初心者ですが
・PyQt5 Python
・ますたーのお勉強中の独り言スレ
・Excel Python 質問スレ
・Kivy Pythonライブラリ
・暇だからPython始めるよ
・プログラミングの勉強法
・プログラムの勉強がしたい
・Excel VBA 質問スレ Part57
・大学でpythonってやつやるらしいんだが
・SEになるために前もってできる勉強を知りたい
・Pythonistaなネラーさんいますか?
・くだすれPython(超初心者用) その40
・くだすれPython(超初心者用) その34
・くだすれPython(超初心者用) その36
・pythonの演習課題について教えてください
・Python単純すぎくそワロタwwww
・AI作りたいけど、CとC++とPythonのどれがいい?
・pythonを仕事で使えるレベルにするには何日かかる?
・くだすれPython(超初心者用) その45【Ruby禁止】
・くだすれPython(超初心者用) その41【Ruby禁止】
・くだすれPython(超初心者用) その44【Ruby禁止】
・くだすれPython(超初心者用) その42【Ruby禁止】
・Eclipse統合M36【Java/C++/Ruby/Python/Scala】
・プログラミングのお題スレ Part11
・プログラミングのお題スレ Part13
・プログラミングのお題スレ Part14
・Regular Expression(正規表現) Part14
・Regular Expression(正規表現) Part15
・Xamarin Part5
・Prologでまったり Part5
・pythonがこの先生きのこるには
・Pythonについて(アンチ専用)
・pythonを使ったyoutube 動画
・くだすれPython(超初心者用) その48【まず1嫁】
・Excel VBA 質問スレ Part51
・Excel VBA 質問スレ Part59
・Excel VBA 質問スレ Part54
・ワイ「DSになるために勉強するで!」
・Julia Juno Jupyter part1
・プログラミングを勉強したいんだけど
・c++を勉強したからdirectXを触ってみたい
・【独学】一人で勉強する奴らのスレ【自習】
・Python上げVBA下げしてる気持ち悪い奴ら
・JavaScriptってどうやって勉強すればいいんですか
・初心者だけどプログラムを勉強していろいろ作りたい
・おまいらのプログラムの勉強の仕方を教えろください
・COBOLやPythonのように制限が多い言語の方が良い
・くだすれPython(超初心者用) その52【まず1嫁】
・プログラミング初心者だけどHSPを勉強しようと思う
・【まず1嫁】くだすれPython(超初心者用) その56
・【まず1嫁】くだすれPython(超初心者用) その55
・くだすれPython(超初心者用) その49【まず1嫁】
07:38:44 up 18 days, 8:42, 0 users, load average: 23.26, 16.88, 12.68
in 0.23592901229858 sec
@0.23592901229858@0b7 on 013121
|