くだすれPython(超初心者用) その50【まず1嫁】
レス数が1000を超えています。これ以上書き込みはできません。
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意!
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公式サイト◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 くだすれPython(超初心者用) その49【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1595057607/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ### スクレイピングはpythonとphpどちらが適しているのでしょか?
youtubeの動画を取得して、独自にランク付けしたいです >>2
そのレベルでスクレイピングとか100年早い
100年後に質問してくれ >>2
Python
やってる事は裏でseleniumブラウザを立ち上げて
を用意されたapi叩くって事で変わらないんだけど、
文字列の操作がPythonの方が優れてから >>2
スクレイピングに適しているのはJavaScript。 確かにpuppeteer楽だね
selenium導入たいへん >>5
phpのほうが古くから使われてそうですけどね、この分野では rss取得にはpythonとphpどちらがいいのでしょうか?
1つのサイトを構築する場合、どちらか一方に絞ったほうがいいのですか? Web系でPython使ったことないんで何か出来ないかなと探したがWebだと別にPython使う必要ないな スクレイピングした結果をサイト上に表示するというものですが、pythonかphpか分からないです。 フォルダをファイル名に と同じ奴?
コテ付けてくれ リファレンスじゃなくてチュートリアルのURL貼っといて
リファレンスに描かれてないじゃないか!ってクレーマーω スクレイピングは、Ruby で、Nokogiri, Selenium WebDriver。
driver.execute_script で、JavaScript のコード(文字列)も実行できる
データベースに保存するなら、Rails をそのまま使うのが速い。
Capybara で、Headless Chrome を使う どんな言語でもweb driverの扱いが違うだけでgoogle driverを操作だかんね
因みにgoogle driverの挙動が安定しいから辛い google driverじゃなくてchrome driverだ >>18-19の挙動が不安定な件
もちつけ
> 安定しい >>13
Pythonに決めずに
phpへ出てってどーぞ pcでgui組むのに実装が楽で自由度の高いフレームワークって何ですか? electronかな。VSCodeもこれで作られてる >>24に一票w
あとJavaScriptまでならセーフ visualstudio vbやc#の直感的で色々プロパティが揃ってxml形式の似たもの無いかと探してた。
tkinkerは画面配置がgridとreplaceが合わさった要素がなくてちょっと大変さを感じた。
flutterはxmlいじいじ出来るけどちょっと大変さを感じた。
>>25
electron調べてみます。
>>24
>>26
それがimportしてフレームワークオブジェクトとし使えるものはありますか? >>27
くそみそimportと考える前に少しぐぐろうぜw >>28
>>1
1日、2日の知識で検索しても道に迷います。 >>29
>>14?
そうじゃなくてもはやくクソコテつけてね ぶっちゃけおまえにはC#がお似合いだと思うから.Netにどっぷり浸かっとけ
で、さっさとコテつけろや >>32
追加。
ググったけど分かりませんでした、ではなく、調べたこと考えたことをもとにもっと具体的な質問に落とし込めよ >>29
このクソは
・日に数回質問
・コテハンつけない
・質問の背景を伝えない
・情報を細切れで後出し
・クレクレくんのテイカー
邪魔なのでNGにブチこみたいけどできない
💩🦟 ショッピングモールを歩いてるところを狙って包丁でメッタ刺しにしてやれ お前らって一生平社員から上がれなさそうだな。
30〜50の人がそんなコメントしてると思うと哀れみ感じるよ A:他人の痛みが分かる
A-1:痛みを攻撃する
A-2:攻撃しない
B:他人の痛みが分からない df.loc[df['lr_residue'] > lr.residual_threshold, 'outlier_flag'] = True
この条件式を満たさなかったらFalseを入力したいのですが、どう書けば良いのでしょう? > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>45
df.loc[df['lr_residue'] <= lr.residual_threshold, 'outlier_flag'] = False >>45
is_outlier = lambda x: x > lr.residual_threshold
df['outlier_flag'] = df['lr_residue'].apply(is_outlier) try exceptで例外に関するメッセージを出すことをしたんだけど、
例外発生時にその後の処理をスキップするにはどうしたらいい? >>50
returnに1票
pyそのものを終わらせたいならexit()だったっけか https://qiita.com/sssssssiiiiinnn/items/14f7035abe9ce4111323
これの
user_name
user_password
を自分のやつに、
'utf-8':'✓' → "commit":"Qiita+%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3"
へ変更
あとはそのままで最後に.textをprintしたけど
ログイン遷移画面のhtmlが出力される
urllib.parse.quoteでログインに必要なパラメータ全部をURIに変換してみたけど
英語ページのログイン遷移画面が返された
そもそもこれでログイン後のページを取得できるのでしょうか?
あとはpost時にcookie渡す方法もちょっと今からやってみます よくよくみたら遷移後のページは
エラーが発生しました (500)
500ページでした 自己解決しました
どうやらname=authenticity_tokenのinput要素が
GitHubでログイン、Twitterでログイン、Googleでログイン、ユーザー名でログイン
の4種類くらいあったみたいです
なのでbs.find(attrs={'name':'authenticity_token'})[-1].get("value")
でユーザー名でログインのauthenticity_tokenを取得してpostしてやればログインできました
お騒がせしました >>48
>>49
ありがとうございます。
こういうふうにきれいに一行で書けるのってPythonの魅力ですね。 >>52
catchして何もしないというとこんな風に「握りつぶしちゃイカン」という奴が出てくるけど、脊髄反射だよな。 pythonスクレイピングで深い階層をたどる場合、ひたすらrequests.getを繰り返していく感じでいいんでしょうか? >>62
その前にそこの規約くらい読んどけよ
かつ「適度な負荷」までしとかないと… スクレイピングの話になると
質問者が負荷を考慮しない前提で決めつけて話するタイプが一定数いるよね
もう性癖なんじゃないのかとすら思う
自身が過去に何かやらかしたとかそういう >>62
>深い階層をたどる
これが何を意味してるのかと、実現したいことによる
ただそれはpythonかどうかに限らずどの言語でもほぼ同じ >>58
>>54
帰り値なしでreturnか。ありがとう。
やってみる。 想像だけど、これまではtry exceptしてなかったんでしょう?
元の処理と同じ流れにしたいならexcept内でraiseでないかと >>66
例えばyahooのトップを起点にして、ショッピング>レディースファッション
と進んでいく感じですね
https://www.yahoo.co.jp/ >>64
pythonはじめました → スクレイピングやってみよ
質問してくる奴はほぼ負荷なんて気にしてないレヴェル
pythonは他言語より低レヴェルなプログラマー多いよ >>70
ほらな、この程度。
innertextの中身のチェックくらい入れろってんだよ > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw 迷惑行為に他人を巻き込むな
迷惑行為したいなら自己責任の元、自分の力でやれ スクレイピングって初心者がよくやりたがる題材だが、初心者こそこういう人に迷惑を掛けうるものに手を出すべきではないな
もっと他のことで基本的な力を身に付けてから手を出した方がいいと思う トップ>ショッピング>レディースファッションとたどるだけで過剰負荷ってどんだけ貧弱なサーバーなんだよ。 【PHP】下らねぇ質問はここに書き込みやがれ 11
https://mevius.5ch.net/test/read.cgi/tech/1591334726/428
上に、Ruby で、RSS ライブラリを使って、yahoo のRSS を取得した、コードを書いておいた
API・RSSなどが公開されているサイトでは、契約してそれを使えばよい
頻繁なスクレイピングは業務妨害になるので、避けるべき!
1日1回なら、たぶん大丈夫
詳しくは、サイトのrobots.txt に書いてある しかもDOMの基本もわかってない人も多いからかえって言語覚えるのには遠回りっていうね 5ch など、ほとんどのサイトは一旦、空のHTML を送ってきてから、Ajax でデータを取得するから、
普通にスクレイピングしても、データが存在しないので取得できない
10秒ぐらい待つとか、Selenium Webdriver を使って、ブラウザを操作する必要がある
特に、yahoo は、ID も少なく、暗号のようなクラス名ばかりで、
解析するのに、かなり苦労する
会社が公開している、API・RSS などを使うべき! >>71
そんなこと言い出せば
今までITやプログラミングに縁のなかったそこらの一般人がpythonはじめましたなんていうことは確率的に低い >>69
階層だけど、それめちゃ浅くね?
それにトップから辿らなくてもカテゴリのIDはそう変わらないから直接アクセスすればいいんじゃないの?
あとはレディースファッションとかに表示される商品情報はAJAXで取ってきてるから
requestsでやるならXHRのリクエストをWebサイトがやってるのと同じようにやるのと
レスポンスにある各項目の意味を把握しておく必要があるので少し面倒
(そのかわりSeleniumとかのブラウザ操作系に比べれば高速) カテゴリのID は変わらないとか、
暗号のようなクラス名は変わる・変わらないのか、分からないとか、
漏れらは、そのサイトの作者じゃないから、仕様が分からない
答えを推測するしかできないから、
答えを知ってる香具師・作者と比べれば、圧倒的に不利
何回もスクレイピングして、テストしないといけない。
また翌日になれば、クラス名などが変わるかも知れないから、何日間もテストしないといけない
どういうルールで、クラス名などを決めているのか、分からない
だから、クラス名に頼らず、div の下のdiv の、みたいに構造で分析していかないといけない。
ものすごく深いネストを解析するのは、面倒くさい これはひどい
https://www.尼zon.co.jp/dp/4798161918 >>83
APIが提供されているならそっちの方が簡単だよね こういう動画を見れば?
エンジニアチャンネル、粟島
【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4
YouTube のスクレイピング。
API を使って、Ruby で1時間
時給30万円! >>81 今は大学で教えてるんじゃないの? 一番教えやすいから。
アメリカだとPython がわかるかどうかが採用条件になってる会社もある。
日本はRuby が普及してたから出遅れてる。 そういうことじゃなくてpython知ってるかどうかやり始めたかどうかはどうでもよく
○○を知らないはず(妄想) → ○○やれよ(確信)、と指摘する
みたいなレッテル貼りの認識が抜けてるってのがおかしいでしょってこと
仮に○○が当たってたとしても、妄想でしかない エスパーしかこたえるなといったり
今度はエスパーにレッテル貼りといったり
さすが、尻にう●こついてるだけあって
脳の新陳代謝が活発でいそがしいなw 統計処理
↓
グラフ出力
のアプリを作成したらコードが600行ぐらいになって非常に見にくくなりました。
こういうときって、統計処理とグラフ出力などをクラスとして分けるべきなのでしょうか?
現在は各処理を関数にしているだけなのですが・・・。 githubに公開するつもりでモジュール化すればおのずと形になりそう VBAで描いたら6000行は下らないから
pythonで600行なら良く出来た方じゃね >>99 Python でそんなになるはずないだろ。
統計処理で何をやってるのか知らないけど。matplotlib でグラフを書くだけだろ。 jupyter/scipy-notebook というDocker を使えば、一式揃っているのでは? 1 データ成型
2 統計書
3 グラフ出力
4 画像出力
とやってたら600行越えてちょっとややこしくなってきました。
1〜4の間でやり取りするデータやDFが多いのと、
単なる逐次処理で、クラスにしても内部保持するデータがないのでどうすればいいのかと悩んでます。
モジュール化勉強してみます。 描き捨てならメリット無い
モジュール化して見透しが良くなったりするかも知れないが行数は減らないだろう すいません。
もう一つ質問なんですが、
関数で引数がなかったら処理1、引数があれば引数をつかった処理2をさせたいときは以下のようなコードをかけば良いのでしょうか?
def show_start_menu(hoge=None):
if (hoge is None):
処理1
else:
print(hoge) >>105
>if (hoge is None):
>処理1
ここ↑って
if hoge:
処理1
じゃ、イカン何か特別な理由ある?
あと、引数でNoneが渡ってくる可能性は0? >>103
104を読め
そして
おれいをいうとチヌ病気をなおせ def function(*hoge):
def function(**fuga):
def function(*hoge, **fuga): >>104
見通しがよくなるのがメリットでしょ
書捨てでも600行もあれば見通しが悪いと変更に時間がかかるようになる
それにコードを構造化することで考え方やパターン認識が強化できるから上達も早くなるよ > パターン認識が強化できる
ヒソ( ´・д・)ヒソ(´・д・`)ヒソ(・д・` )ヒソ >>105
Noneでもいいけどデフォルト値が使えるならそのほうがベター
関数定義時にデフォルト値が定まらず
呼び出し時に動的に評価させたい場合はNoneにする デフォルト引数の =[] でハマる人ですね判ります >>113
そういうのは一度ハマればいいと思うよ
色んな意味でPythonのレガシーなところを知る取っ掛かりになるから エンバーーーーグ
嫌ぁああああ♪
I will always love youぅううう♪ c#からpython起動するときにcsvファイルのパスを渡したいのですがこういうときってどうやるのでしょう
どうもc#から起動時に飛ばさpythonのに引数としてパスは渡せないっぽい。テキストファイルに書き込んでやり取りがシンプルなのかな >>117
>飛ばさpythonのに引数としてパスは渡せない
おまえがばぐっとるぞw
なおせ
はなしはそれからだ Notepad++ はauto complete使えるですか?
vs codeが楽なんでしょうけどね >>123
Notepad++はPythonじゃない件 (設定できる腕前があるようなヤツなら
ぐぐってとっくに使ってるだろJK) >>123
使えるよ
https://npp-user-manual.org/docs/auto-completion/
でも同梱されてる補完用のxmlファイルはpython2用のままだと思うので、自分で修正するか、jediとか使った方が良いかも
vscodeの方が日本語の情報も多いしオススメ tkinterで
root = tk.Tk()
button = tk.Button(root, text='時系列で分析', width=20,
font=menu_font, command=graph(root))
def graph(root):
としてgraph関数ないでrootから取得した値を使いたいのですが、
button = tk.Button(root, text='時系列で分析', width=20,
font=menu_font, command=graph)
としないと、ボタンを幼くてもgraph(root)が実行されてしまいます。
ボタンを押したら引数を渡して関数を実行させるにはどうしたらいいのでしょう? >>128
ありがとうございます
引数渡すことは出来ました ボタンが押されたらテキストボックスに入力した名前を習得し、
analyze関数にわたしたいのですが、
# Make text box
txt = tk.Entry(root, width=20)
name = txt.get()
# Button1
button1 = tk.Button(root2, text='1データを分析', width=20,
font=menu_font, command=lambda: analyze(name))
ではうまくいきません。
一つのボタンでテキストボックスの名前取得、関数に引数として渡して実行の2つを行う方法ってないでしょうか? もしくは
button1 = tk.Button(root, text='1データを分析', width=20,
font=menu_font, command=lambda: analyze(root2))
button1.place(x=120, y=90)
def analyze(root):
name=root.txt.get()
print(name)
みたいな感じでrootを渡してcommandから呼び出した関数でテキストボックスの値を取得して複数の命令を実行したいのです。 すいませんコード修正します。
もしくは
button1 = tk.Button(root, text='1データを分析', width=20,
font=menu_font, command=lambda: analyze(root))
button1.place(x=120, y=90)
def analyze(root):
name=root.txt.get()
print(name)
みたいな感じでrootを渡してcommandから呼び出した関数でテキストボックスの値を取得して複数の命令を実行したいのです。 自分もまだまだ初心者で分からない所あるけど流れからすると
1.画面開く
2.テキスト実装
3.テキストの値取得(空っぽ)
4.ボタンの実装
ボタンを押した時の引数値は2の値
もし、2で正しく値が取れてるなら引数にtxt.get()を渡す。
もしくはnameをglobal宣言 global変数はスコープの関係でのちのちややこしくなるので、定義したくないんですよね。
でもググった例では確かにグローバル変数使ってるんですよね。
GUIのボタンを押したらテキストボックスから値を取得するだけのことなのに、
なんでこんなに難しいんだろう・・・。 この連投カスだけはうまくいかないとざまあと思うわ
C#
Windowsのフォルダパス
スクレイピング
イテレータ 質問をきちんと整理すると
関数内で
1. ウィンドウ、テキストボックス、ボタンを作成
2. ボタンを押したらテキストボックスの値を取得
をしたいのですが、
def sub_menu():
# Make text box
txt = tk.Entry(root, width=20)
# Button1
button1 = tk.Button(root2, text='テキストボックスの値を取得', width=20,
font=menu_font, command=????????)
command=????????
のところでどう記述すればテキストの値を取得できるんでしょう? >>128
ありがとうございます
引導渡すことは出来ました HTML, jQuery では、
ボタンをクリックすれば、入力コントロールから文字列を取得する
<input type="text" id="Text1" value="あいう">
<button id="Button1">押して</button>
<scr@ipt>
$( "#Button1" ).click( function ( ) {
console.log( inputText = $( "#Text1" ).val( ) )
} )
</scr@ipt>
<scr@ipt> の@ は、5ch に書き込めないので入れたので、無視して vscodeが重いのですが、軽量エディタあるですか?
補完ありで >>142
notepad++を自前で補完セッティングする
Py3に対応する設定が完成したら、ぜひ配布してくれ goto文でもグローバル変数でも、神の逆鱗に触れて世界が滅ぶわけでもないので、必要性に応じて適切に使用すればいいよ。
何も考えずに全てgotoだけ、全てグローバル変数だけってのが良くないだけ。 Sublime text
(win)Pythonの開発環境(IDE)としてSublimeText3を使う。
https://qiita.com/FireFoxCorp/items/01d79207ab071c2a7522
コード補完ツール kite
https://acokikoy.
hatenablog.com/entry/2019/03/09/133840 >>145
どっかでPy2用セッティングが配布されてるから
落としてきて改変よろしく async関数内のawait文(コルーチン?)をWhile True文内で定期実行することは難しいのでしょうか?
非同期処理は学習中なのですがいまいちよくわかりませんでした >>145
py2用は最初から入ってるよ
>>126 >>150
python3用は自分で設定するのですか?
あと文法チェックっはないでしょうか?
vccodeのターミナルみたいなやつです
dbgpというのがありますけど >>151
vimもいろいろな補完の方法があるよ
「vim python 補完」で検索すれば詳しい解説がたくさん見つかるから読んでみて
>>152
notepad++の補完は↓読めばわかるよ
https://npp-user-manual.org/docs/auto-completion/
同梱されてるpython.xmlはpython2用なので、それを自分で修正する必要がある
文法チェックは本体にはないけど、外部ツールと組み合わせてできるよ
「notepad++ python lint」とかで検索するといろいろな方法が見つかる
https://github.com/deadem/notepad-pp-linter
https://stackoverflow.com/questions/4987920/python-correctness-i-e-lint-analyzing-for-notepad
pylint.bat使う方法は、notepad++に限らず、いろいろなエディタと組み合わせて使えるよ >>153
どうも
vim試してみましたが操作が独特すぎたのでnotepadにしときます >>153
pythonに関してはモジュールまでは補完されないようです
デフォルトでは phpの場合はxdebugというのが必要でしょうか?何にしてもデフォルトで文法チェックはできないみたいですね
軽量なのが魅力なんですがね >>151
vimは一度でもあの操作体系になれちゃうと、それ無しではコード書きたくなくなる程度に中毒性があるから、手を出さない方がいいですよ
慣れちゃった人は新しいエディタ触るときでも無意識に同じ操作体系使えるようになるvisvimみたいなツール探してしまうっていうし TEXTエディタでimport したモジュールの補完までできるのってあるのかな?
Python専用IDEなら当然だが。 >>159
vscodeだったら普通に対応してるぞ
というか導入しやすさ考えるとテキストエディタはほぼvscode一択レベル >>159
jedi-vimだったらimportというか実行環境に登録されてるpathは追ってくれた気がする やっぱvscodeが一番ですよね
しばらく放置したあと、アクティブにするともたつくんですが、ssdにするといいんでしょうか?
放置したあとにもたつくというのは、おそらくデータをhddに退避させているということだと思います。
タスクマネージャを見るとhddへのアクセスが集中しますので(´・ω・`)、、、 ほかのエディタやIDEにVSCodeのRemote Containerと同等の拡張機能が追加されない限り、pythonの開発環境はVSCode一択や
それくらい革命的 辞書型のデータを文字列に変換して出力してるんですけど
キーを囲っているコーテーションがシングルで出力されます
これをダブルコーテーションで出力するにはどうしたら良いんでしょう? 質問です
Pythonをターミナルからファイルで実行して、
実行中に引数を受け渡してプログラムでその引数を受け取ってプログラムの処理を変えるというのはどうしたらできますか?
例えば、
def sum_numbers(x, y)
answer = x + y
return answer
というcalc_numbers.pyというファイルがあって、
ターミナルから python calc_numbers.py 1 1
と実行したあとに
実行中にもう一度 python calc_numbers.py 2 2
とし直して計算結果を変えたいのです
よろしくお願いします ターミナルで実行(引数a)するとプロセス1が起動します。
例えばループ処理で常駐化した状態でターミナルで最実行(引数b)するとプロセス2が起動するので難しいです。
プロセス間非同期処理まで考慮すれば…ですが初心者には難解です。
代替案として以下の感じですかね?
1.ループ処理:
2.入力待機処理:
3.計算処理 >>166
ん?こういうことかな?
import calc_numbers
rt1 = calc_numbers.sum_numbers(1,1)
print(f'{rt1}')
rt2 = calc_numbers.sum_numbers(2,2)
print(f'{rt2}') df
0 2020/5/21 12:41
1 2020/5/22 12:41
4 2020/5/21 12:41
5 2020/5/21 12:41
6 2020/5/21 12:42
のようなdfで
同一日のデータが複数あるときに時刻が一番後のデータ以外を削除する方法ってないでしょうか
(日付と時刻は一つの列に記載しています) >>170
考え方としては日付とファイルパスの配列があって
日付をシリアル値に変換ソート
最終日以外はforやイテレタで回して削除は? >>170
新しいdf作って、最大日付のレコードのみコピーじゃダメなの?
どうしても削除しなくちゃダメ? sortしてから
df.drop_duplicates(subset=[‘日付’], keep='last') >>173
ありがとうございます
duplicate()
使えばできそうと思って悪銭苦闘してましたが、
drpo_duplicate()
なんて便利なものがあったんですね
10行くらいのコードが一行に圧縮されて気持ちいですm(_ _)m もう一つ質問なのですが、
>>170
の日付と時刻が一緒に入ってるデータ列を
日付の列、時刻の列
2つに分ける方法って無いでしょうか? >>174
きもちいのはわかったからもちつけ
つづりまちがっとる
>>175
170の例の通りなら
new_df = df.str.split(' ') > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
Pythonさえろくにできないバカチョンのくせに
できるとほざくクソチョンw
日本で強姦と窃盗を繰り返す
犯罪者在日のクソチョンw >>176
ああ、昨夜壊れていました・・・
教えていただいた方法で分けられました。
ありがとうございます。 df
date_and_time other
1 2020/5/21 12:41 hoge
2 2020/5/22 12:41 fuga
3 2020/5/21 12:41 fuga
4 2020/5/21 12:41 hoge
5 2020/5/21 12:42 hoge
で時刻と日付を分割したい。 それで
# dfからdate_and_timeだけを切り出して、時刻と日付を分割
df_date_and_time = df['date_and_time']
df_date_and_time=df_date_and_time.str.split(' ')
# 分割したdf_date_and_timeともともとのdfを結合
df_new=pd.merge(df,df_date_and_time)
と結合の箇所でやったのですが、
TypeError: unhashable type: 'list'
というエラーが出ます。どうやって再結合したら良いのでしょう? >>181
打ち間違いすいません
訂正します
?
と結合の箇所でやったのですが、
TypeError: unhashable type: 'list'
というエラーが出ます。どうやって再結合したら良いのでしょう?
○
とやると分割まではうまくいったのですが、
結合の箇所で
TypeError: unhashable type: 'list'
というエラーが出ます。どうやってdfにdf_date_and_timeを結合したら良いのでしょう? >>181-182
.mergeの引数の説明ちゃんと読んでるか?
なんでもおまえのよきにはからってくっつけてくれるまほうのじゅもん ではないぞ。
.joinについても調べれのこと >>183
キーを指定していないから、結合のしようがないということでしょうか?
df_new = pd.merge(df, df_date_and_time, left_index=True, right_index=True)
同じdfから切り出してきたものだからインデックスの対応は保持されているはずなのでいいのかな >>184
違う
どうしてそこしか読まないんだwww
他にもあるだろいろいろ 関数の中で自分自身の関数を実行するのですが
変数名指定の引数がたくさんあります
def hoge(f,*,a=0,b=0,c=0,d=0,e=0,g=0):
_if f==0:
__f=1
__hoge(f,a=a,b=b,c=c,d=d,e=e,g=g)
__return
_print(a,b,c,d,e,g)
hoge(0,a=1,b=0,c=1,d=0,e=1,g=0)
hoge(f,a=a,b=b,c=c,d=d,e=e,g=g)のように引数は
全て列挙しないといけないのでしょうか?
4行目でhoge(*arguments)みたいにかけたらすっきりするのになと思いました >>188
NameError: name 'arguments' is not defined
と出たのですが最新版のpythonだと大丈夫なのでしょうか? すみません、もしかして
arguments={a:a,b:b,c:c,d:d,e:e,g:g}を
hoge(f,a=a,b=b,c=c,d=d,e=e,g=g)手前で定義するって意味ではないですよね? 関数の定義文で引数を渡す変数名が指定されていて、再帰的に呼ぶときにhoge(*arguments)みたいに書きたいんだよね? JavaScript のargumentsのようなものは、Pythonでは使用されないのでは?
キーワード専用引数にする必要がある引数なら、そうするしかないような気がするが。可変長キーワードじゃダメなんでしょ >>191-192
そうです!
>javascriptのargumentsのような
無理っぽいですかね
根本的に別の方法も何か探ってみることにします
ありがとうございました キーワード引数でデフォルト値を定義しつつ、それらをすべて**kwargsを使うようなイメージでネストした関数に渡したいってことだとおもうけど
デフォルト値を持ったディクショナリを作って受け取ったkwargsをマージさせた結果をネストした関数に渡すくらいしかないんじゃないかな
hoge(1, a=10, z=20)みたいに呼び出した場合のz=20をどうしたいかでも処理が変わる hoge(f, { a = a, b = b, c = c })とかにすれば 見様見真似でtweepyとかを使ってtwitterのDM botを作りました。
DMが届いたら、そのDMの内容に従って返信をするというものなのですが、
twitterのDMの承認機能のせいで、フォローしていない人からDMが来ると、
そもそもDMを受信したと認識せず、意図した通りに動作しません。
今私が考えられる解決策は、
botにフォローバックさせる機能を追加
↓
一旦DMの送信者にフォローしてもらう
↓
DMを送ってもらう
というオペレーションに変えるというものくらいなのですが、
他に何か良い方法を知ってる人はいないでしょうか? def hoge(f,**hage):
_if f==0:
__f=1
__hoge(f,**hage)
__return
_print(hage)
hoge(0,a=1,b=0,c=1,d=0,e=1,g=0) >>198
それだとdef hogeをデバッグするときhoge内で何の引数が使われているか検証し辛くなりません? >>200
hageてるとこ確認するだけじゃないの? 関数内で key の一覧確認して
禁止するなり None で補うなり
なんなりと >>201-202
ですよね
なぜか他のモジュールとか参考にみてると変数名指定のものが多いんですよね
何か理由があるのか?と思って
引数に使わなかった初期値を設定するロジックを書かないといけない、ってことでしょうかね?
とりあえずは引数に**使う書き方にしましたが今のところ何の問題もないので
この形式でいこうと思います C で描かれるモジュールとかもあるからな
もちろん python 用のモジュールなら
* も ** も C で使える プログラミンが楽しくなる方法教えて下さい
結局出来ないのに楽しいということはありえないのかですね
あとVScodeをアクティブにしたときにhddへのアクセスが集中するんですが、これはSSD化とメモリを増やす(メモリスワップ防止)ではどちらが効果的ですか? プログラミン自体は楽しくないけどな
目的のものを作るための道具として使ってるだけだし
目標物もないのにプログラミンだけやろうとは思わない 自分はゲームですね
目的はあるんですけど最近やる気が出ない
孤独によるうつ病かな
孤独だとどうしてモチベーション無くなるんでしょうね >>205
いきなり壮大な目標をたててもいいが
手前にマイルストーンもちゃんといっぱい置いとけよ。
たとえるなら
人生帰宅部でパスポートすら持ってないおまいらがあるひ
「K2登山目指すんゴ!」って言ってはいるが
そのために何したらいいかあんまわかってない状態だぞいま
メモリふやせよ
Win10だったら8Gは底辺な >>207
>孤独だとどうしてモチベーション無くなるんでしょうね
おまえの性質なんぞ
しらんがな(´・ω・`) うつびょ治すプログラミン作ればいいんじゃね
知らんけど >>208
今更ddr3を買うのもなんだかなと思うので
マザボとcpuも変更してddr4にしますかね
>>209
結局生きる意味って家族ですからね、、、 >>212
カネがあるならそうしろ
ただしCPUとメモリのバランスはダイジ
どっちかだけ突出しててもいみない
>結局生きる意味って家族
おまえのかんがえるいきるいみなんぞ
しらんがな(´・ω・`) >>210
禁煙マラソンを手伝ってくれる会話風AIが
「薬」として承認される見込みだよなそういえば >>215
そういう話がしたいなら、どこか他の適切な場所を探せ いつの間にかどこかのIT糖質おじさんみたいなのが増えてやがる スクール的なとこでPHPを学んで、これ市場価値低そうだなって思ったのでpythonを学ぼうと思ってます
pythonとPHPの違いはなんですか? 機械学習やAI関連のライブラリが豊富なのがpython
web開発に適してるのもpython
上位互換ということです >>218
中毒性とあいまいさに違いがある
ユルユルガバガバなのでそのユルさに一度ハマってしまったヤツは
二度と使い物にならないというのがPHP
インデントが崩れたらチヌ程度にきっちりしてるのがPython >>218 PHP は、HTML を簡単に草プログラムの中に取り込むための専用ツール。
Pythonは、汎用プログラミングツール あのーDockerってたとえばまっさらなパソコンにPythonのイメージをもってきてコンテナにいれると自動でPythonの本体とかダウンロードしてつかえるようにしてくれるの?
もしそうならものすごくべんりだよね? 親.pyで子.pyをimportしました
子.pyではimportしていないはずのモジュールAが使えました
どうやら親.pyでモジュールAをimportしていたので子.pyでも使えたようです
しかし、子.py内でもモジュールAをimportしておきたいのですが
そういう重複importは避けた方が良いのでしょうか? pythonは自動で避けてくれる
C言語のようなインクルードガードは不要
なんでバンバン重複していい >>169
レスありがとうございます。
いえ、違います。
プログラムの実行中に再度引数を渡して実行するということです。 >>226
具体的に何がしたいのか、全く見えない。
実際にやりたいことの具体例を示してくれ。 ttps://stackoverrun.com/ja/q/11591177
こんなの?途中終了出来るスレッド化のことでは? 単にinput関数がうまく使えてないって話じゃないかな。初心者スレだし >>226
やりたい事が謎過ぎる
イメージ的には
1:コマンドラインに数値を2個入れる
2:計算結果が返ってくる
3:もう一回数値を2個入れる
4:計算結果が再度返ってくる
っていう感じか?(参考書とかでよくある奴)
この場合だったらwhileでループさせて
input関数で入力受取→関数に引数渡す→結果を表示
っていう風に作れるけど >>227
>>230
現状で可能なことと実現したいことは下記の通りです
【概要】
・iPhoneにPythonを入れて開発中
・iOSでPythonファイルをソケット通信して実行しているが、何百回も
ソケット通信の終了・sys.exit()による終了をしているとiPhoneが再起動してしまう
・Pythonファイルのコードの中のみでwhile文を繰り返して処理する分には正常に動作し続ける
・ただしPythonのみだと断続的に変わる値を受け渡せないのでタップ座標が固定されてしまう
・そこでiOSでPythonファイルを実行中に、リアルタイムで実行中にPythonファイルに値を受け渡せたら正常に実行できるはず
・Objective-Cファイルからコマンドライン引数にてPythonに値を下記のように移すのには成功済み
args = sys.argv
x = float(args[1])
y = float(args[2])
【目標】
・Objective-CからPythonファイルを実行中にinput()関数に似た形でx, yの値をPythonファイルに受け渡すこと
よろしくお願いします。 ()で囲まれた文字列をタプルにする方法ってないかしら
"('aaa','bbb')"の文字列を tuple にしたい >>231
>・ただしPythonのみだと断続的に変わる値を受け渡せないのでタップ座標が固定されてしまう
ここの考え方がおかしいな、別にそんな事はない
以下の順に検証してみて欲しい
1:PythonでWhileループでタップした座標を表示するプログラムを作る
タップ→表示→タップ→表示……っていうループになるように
2:1で作ったプログラムに、関数を呼び出す形で実装する
タップ→関数呼出し→タップ→関数呼出し
何か無意味に無茶な事をやろうとしてるように見える >>235
それだそれ、前も使ったことあったのに忘れてた
でも手順変えてもう必要なくなっちゃった >>234
レスありがとうございます
関数呼び出しをすればいいんですね
試してみます
またお聞きするかもしれません youtubeのスクレイピングはphpとpythonどっちが適しますか? 冗談はおいといて、その2つならPythonの方がいいよ
Pythonはスクレイピングしやすいから youtubeぐらいならどっちでも
スクレイピングするならライブラリが揃ってるPythonが良いというのは定説
で、どっかのレンタルサーバ借りて動かす場合は
スクレイピングするんだったら結局のところ自分でrootもっててコンソールで自由に環境構築できるようなとこレンタルすると思うから
どっちでもかまわないと思う
ユーザー画面をPHPで作りたい場合でも、PythonでスクレイピングしてPHPで結果表示したっていいんだしな
あと、どうしても無料でやりたいって事ならPHPしかない
PHP+MySQLなら無料レンタルあるけど、Pythonは無料レンタルないんじゃないか?
Pythonやろうっていう人はだいたいAWSでしょ >>245 は? 自分でインストールすれば良いじゃん。 >>238
スクレイピングするならまずはJavaScript
Pythonは旧式のライブラリしかないし言語機能も不足してるから
データ分析と組み合わせたスクレイピング以外では積極的に使う理由はない >>245
Python動いて無料のレンタル、あるよ? 別に自前でもいいが
最悪、PCが文字通り炎上する。 >>247
phpはだめですか?
データ分析はやるつもりです
チャンネルの分析というか 【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4
エンジニアチャンネル粟島が、Ruby, YouTube API を使って、動画の情報を集める。
1時間で作ったので、時給30万円!
凡才プログラマーKBOY が、これに異を唱えて、情報を集めている
結局、30人ぐらいが応募して、数千円になってしまったらしい コーディングが1時間で終わっても検証やら仕様書書きやら
サポートやらで1週間じゃ終わらないよ。 Pandas をインストールしたいのですが
10.0C++を要求する旨のエラーがでます。
何とかC++をインストールせずに
Pandasをインストールできないでしょうか。
numpyはネットにexeがあったのでできました。 >>258
>何とかC++をインストールせずに
>Pandasをインストールできないでしょうか
必要な外部ライブラリ無しでどうやって使う気やねん cythonのインストールでvcvarsall.batがないといわれます。
実際にどこにもないのですが
2010年のvcredist_x86.exeを、実行しても
vcvarsall.batが作られません。
vcredist_x86.exeでは作られないのでしょうか >>264
いわゆるランタイムじゃだめ
Visual StudioをC++を有効にしてインストールするか
VSのIDEが必要ないならBuild Tools for Visual Studioを入れる pysimpleguiでタブの中にタブ
つまりsg.TabGroupのsg.Tabの中にsg.TabGroupをいれてみましたがエラーがでてしまいました
単にタブの入れ子は対応していないということでしょうか? すいません タブの入れ子、普通にできました
https://ideone.com/c4A7Pn
配列の階層を間違っていたようです
ややこしいですね conda installの後にたまに-q -y -cてついてるけど
それぞれの意味て何ですか?? install時の-qなら9割方quiet
UNIX作法ではそうなってる
つまりpythonでは無い方面の知識が必要になる 検索しても出てこないのでここに来たんですが
ここの人じゃわからないてことですか? 単にネット初心者でググレカスを使ってみたかっただけなので気になさらぬよう >>271
まずヘルプを読まないのはあなたが馬鹿だからですか? >>273
ヒント書かれてるのにわからないから馬鹿なんだと思うよ 試してごめんね
お前らはわからないとすぐこれだからな
-c command 内の Python コード実行
-q copyright 、バージョンメッセージ非表示
-y y/nのy実行 「ここの回答者は俺の質問が高度すぎて答えられなかったんだ」 >>271
マイナス付けると検索では除外になっちゃうからな。 scikit-learnの勉強をしていて学習速度の遅さに絶望しました><
GPUの購入を検討してるのですがGPUが使えるおすすめのライブラリを教えてください。。。 scikit-learnでdnnやるくらいならpytorchやっとけ
nvidiaのcuda10.1以上使えるgpu買って
cpuがintel avx2以上対応ならgpu買う前にanacondaのscikit-learnがVanillaよりは速い仕様と話題 ありがとうございます。
pytorchって古典的な機械学習もできるんでしょうか?
サポートベクターマシンなどの…。
CPUでもGPUより早くなる事もあるんですね。
ディープラーニングじゃない場合はGPUの恩恵があまりないものなんですかね。 >>285
古典的な機械学習のためのscikit-learnだよ ありがとうございます。
古典的な機械学習はscikit-learnなんですね。 scikit-learnの学習速度を上げたい場合は
よいCPUを買うしかないのですかね。。。
scikit-learnはGUPに対応してないですもんね。 超初心者とかウソかよ
x + y をコンソールに表示したいんだけどどう書いたらいいんですか?
ぐらいのレベルじゃないと超初心者とはいわないだろ C(+はつかない)の頃やったなぁ
AAでsin関数を表現する とか def self(name:str=None, age:int=None) -> str:
_print(type(name))
_print(type(age))
_if name != None and age != None:
__return f'name = {name}, age = {age}'
_else:
__return 'error'
print( self('Tom', '30') )
関数アノテーションをやってみたのですが
エラーを吐くわけではないんですね
def self()内で型エラーを吐くような書き方はないのでしょうか CPUでそこそこ学習速度が速いのがいいならlightGBMとか使えば?
今時プレーンなSVMなんて覚えても使うところないよ >>291
returnじゃなくて
raise TypeError("〜〜")すれば? >>293
まさかとは思いますが
if type()で引っかかった時にraiseするってことじゃないですよね? 質問です
実行中のPythonを終わらせるコマンドを教えてください
usr/bin/python3.7が動いている前提です ご回答ありがとうございます
実はiPhoneで実行しています
ctr+cはできません 1万行くらい要素を持ってるリストが有って
その中からある数百個だけを等間隔に抜き出したいのですがそういうライブラリとかないですかね? 質問したらどうやって解決したのか書くのが礼儀だぜ
bigdata[::N] >>300
それが人にものを聞く態度か?
立場をわきまえろ ローカルサーバー限定で使う私的webアプリを作ろうと思うのですが
そういうときはvirtualBOXなりで極端な話、1プロジェクトにつき1仮想環境
みたいにした方が良いのでしょうか? 異なるゲートウェイをそれぞれコンテナ1コンテナ2…に振り分ける
みたいなことはできるんでしょうかね 調べてみます
ありがとうございました @classmethodをざっくり調べてみたのですが
使いどころがいまいちわかりませんでした
(1)@classmethodをつけて、インスタンスのみで使う
(2)@classmethodをつけて、インスタンス以外でも使う(例 クラス名.メソッド())
(3)@classmethodをつけず、インスタンスのみで使う
(4)@classmethodをつけず、インスタンス以外でも使う(例 クラス名.メソッド(クラス名))
https://ideone.com/2qI4Am
(説明のためでコード内容に深い意味はありません)
(1)の場合、selfから__xや__yを参照すると属性エラーが出ました
それは、@classmethodを付加したメソッド内部の処理では
__init__で設定した初期値を扱えない、ということを意味しそうな気がするのですが
何のために?とモヤモヤしています
(h.sum(h.x, h.y)のようにインスタンスのときは明示的にゲッターを使えるため・・?) コミュニケーション取ってやるより
自分に合う本を1冊やり通す方がいいと思う >>308
クラスメソッドをクラスインスタンスから呼び出したときに第1引数に自動的に挿入されるのはクラスオブジェクト(その例ならHoge)なので、クラスメソッドの第1引数は、慣用的には(selfではなく)clsと書く。
__init__で設定されるのはクラスインスタンスの属性x, yであり、その例のクラスメソッドsumは(クラスインスタンスの属性x, yではなく)クラスの属性x, yの合計を返そうとするので、エラーになる……ということかと。 >>312
>(その例ならHoge)
なるほど
インスタンス化しようがしまいがHogeを返してたのですね
( selfと書いてしまっていたので何かしらで参照できなくなったのかと勘違いしてました)
メソッドをクラスとは別々に買いてもほぼ同じだがクラスに関連はさせておきたい的なときに使う感じですかね
効果的に使えるかは未だにわかりませんがすっきりはしました ありがとうございます key = 'my_var'
value = 1.234
formatted = f'{key!r:<10} ={value:.2f}'
このなかで {key!r:<10}の !r ってどういう意味なんですか? >>315
ありがとう。repr()を呼び出すのか。 >>308
使いどころが判らないってことは君にはまだ要らない機能だから気にすんな
無理に使い方だけ覚えても身に着かない 超初心者スレでイキってるぐらいなんだから察してあげよ この初心者スレに良心はいないからな
日頃のストレスを発散してる底辺エンジニアの集まりだから
質問ならブログのコメント欄にした方がましだぞ
ここは雑談スレ 剰余計算なんですけど、-1%4で3が返ってくるのはなぜですか?-1にならない
リファレンスによると除数の符号に合わせるくらいしかpython特有の仕様はないみたいなんですけども
https://docs.python.org/ja/3/reference/expressions.html >>321-323
ちょwwwwあさからワロラサレタ(・∀・)wwwww 5 % 4 = 1
4 % 4 = 0
3 % 4 = 3
2 % 4 = 2
1 % 4 = 1
0 % 4 = 0
-1 % 4 = 3
-2 % 4 = 2
-3 % 4 = 1
-4 % 4 = 0
-5 % 4 = 3 被除数が負の剰余計算は言語ごとにまちまちなんだよね その者負の剰余取るべからず
村に伝わる言い伝えです >>325-326
ホッホー(・∀・)
>>328
wwwww プログラミング初心者です。
スレの勢いやTwitterのトレンドを見る限り、Python、JavaScript、VBAが最強であることがわかりました。
この3つ言語の中でもっとも最強なのはどれでしょうか?
これからその言語一本でプログラマーを目指したいと思います。 >>331
本気です。まじめなアドバイスをお願いします。 >>332
最強の言語なんてないし、言語ひとつしかできないようじゃプロとしてやっていけない。
入り口としては何でもいいから自分に分かりやすそうなものから手をつけろ。どうせそのうち他の言語もやることになるから最初の言語の選択で失敗したらとか気にするな。 >>333
Rustが最強なんですね。どの辺が最強なのか詳細をいただけると助かります。
>>334
プロになるには何言語も習得しないと飯は食えないもんですか。
大変な道のりですね。 >>330
> スレの勢いやTwitterのトレンド
これで最強と判断するのがおかしい
そもそもお前の言う最強って何よ? 日本人ならVBAできて当たり前
VBAでできないことはほぼない >>330 その3つの中ではPython が一番言語として体系だってる。
最初に学ぶのは、Python かC/ C++ の2択。 入りやすいのは Python YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむ。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
C/C++ などのポインタ系や、ハードウェアの仕組みなども、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
言語よりも、Docker, Kubernetes, AWS などの、サーバー構築・新規案件を重視する。
上流工程・新規案件の方が、価格交渉力が強いから。
一方、下流工程・保守案件は低価格しかない Python スレだから Python 薦めるけど
他には C/C++ や Erlang が勉強用にはお薦め
javascript や VBA は雑魚
うby は論外 >>338
10年飯が食えて、将来性のある言語がいいですね。
>>339
VBAができないとプログラマとしては失格ですか。
>>340
やはりPythonが最強なんですね。
>>341
Rubyだけはあかんと聞きましたが最強なんですね。
>>342
やはりPythonが最強ですか。
Pythonをすすめる方が多いのでとりあえずPythonを極めて
人工知能を作ってみます。他の言語は人工知能に翻訳させれば覚えなくてもいけないんですかね? >>343
そうだよ
人工知能が他の言語に訳してくれるからpython以外やらなくていい >>344
やっぱりPython最強なんですね。
ディープラーニングを極めて面倒なことはAIにすべて任せるのが
賢い選択かもしれませんね。 >>345
それがいい
ディープラーニングを極めれば簡単な仕事は全部AIがやってくれるようになるよ
現に俺はもう脱サラしてAIに労働させてる
ちなみにこの書き込みも機械学習が生成したテキストねw >>345
rubyは特殊な性癖を持つようになるから手を出してはいけない
pythonを選択したキミは人生勝ち組の切符を手に入れたも同然
全ジャバパーがキミにひれ伏す時代もすぐそこだよ >>346
すごいですね。
ディープラーニングはどのライブラリ使ってますか?
おすすめがあったら教えてください。
>>347
rubyは避けたいと思います。
ありがとう。 プログラミング初心者が独学でPython始めようと思うなら
まず最初にチュートリアルを1~2時間以内で3~5ページは読んでみること
https://docs.python.org/ja/3/tutorial/
9割程度理解できるようならPythonを独学で学ぶ適性があるのでそのまま続けるといい
それ未満なら独学で学ぶ適性はない可能性が高いので
もっと平易なチュートリアルが公式/準公式で整備された言語を選択したほうがいい >>349
ありがとうございます。
勉強してみます。 ジャバパーの響きにウケる
それにしても初心者スレきといて言語を極めるとかすげーなw >>351
やたら最強を気にするところもあわせて、小学生男子のような少年の心の持ち主なんだろう >>351
同意w
ジャババー(・∀・)ワロターヨ
>>353
www
+1 イイネ!!(・∀・) >>.349 公式チュートリアルが難しいと思ったら、簡単な入門書なり何なり書籍でもオンラインでも山のように揃ってるのがPuthon の良い所。
別の言語に行く必要はない。 numpyで二次元配列の要素をシャッフルしたい。
頑張ってみたんですけどちゃんとよそがシャッフルされずに
おかしな挙動をします。どなたかお助けください><
import numpy as np
a = np.arange(0,9).reshape(3,3)
np.random.shuffle(a) 行ごとにシャッフルではなく
行列すべての要素をごちゃまぜにしたいのです。。。
お願いします>< >>358-359
aを一旦1次元9要素にひらたくしてから、シャッフルして、3×3に戻したらどーなのん
シャッフルについては「サットロのアルゴリズム」あたりで検索 >>360
ありがとうございます。その方法を使わせていただきます。 二次元配列ってExcelでいうと表だよね
難しい言葉使うなぁ
このスレのレベルにはまだついていけないようだ >>362
プログラミングで表とか言うと逆にわかりづらい。 >>363
>連想配列(れんそうはいれつ、英語: associative array)とは、コンピュータプログラミングにおいて、添え字にスカラー数値以外のデータ型(文字列型等)も使用できる配列である。抽象データ型のひとつ。連想リスト、連想コンテナ、辞書(あるいはカタカナでディクショナリ 英語: dictionary)、ハッシュ(英語: hash)、マップ(英語: map)とも呼ばれる。
言語によって言い方かわるのやめてほしいわぁ
なんでなんかなぁ そんなもんだろ
言語が違ったら書き方違って当たり前
10言語ぐらい使ってたら、名前どころか辞書に要素を追加する方法、キーの存在チェックなんかもやり方忘れちゃうから
しょっちゅうググることになる。 >>364
なんで連想配列の話になったのか知らんけど、
連想配列と二次元配列は違うぞ。 表=二次元配列までのExcelシートと違って三次元以上の配列も扱えるから二次元配列だけ表と呼ぶのはおかしい >>365
なんで言語を統一しようとしないのか?
標準化団体とかあるじゃん、IEEEとかISOとか
やること同じなのに、やり方が違うとか無駄じゃないの
すでにあるシステムを保守しなきゃならないから過去の分は仕方ないにしても未来は統一すればいいのに >>366
単に言語によって言い方が変わるもので俺が知ってるのが、辞書だっただけだよ
二次元配列とは違うのは知ってる >>370
無駄に偉そうだなw
中身を理解していれば呼び方なんてあまり関係無いだろ $ python setup.py sdist
$ pip install dist/mypackage-1.0.tar.gz
で自作パッケージをインストールしました
pip listで確認したところmypackageがリスト上にありました
しかしimport mypackageしたところ
ModuleNotFoundError: No module named 'mypackage'
というエラーがでました
pip listには表示されるが一方でno moduleという矛盾に陥ったのですが
考えられる原因は何でしょうか
ちなみに他のパッケージは問題なくinstallもimportもできました
(mypackageの中身はprintでHelloするだけの内容です) >>369
そう思うならお前さんがやればいいだけ
やってみればなぜそういう方向に行かないかもわかると思う >>369
自然言語がいっぱいあって統一できんのと
だいたいが同じ理由じゃろ pip show
のインストール先のディレクトリを確認したところ
mypackage-1.0.dist-infoしか入ってませんでした
他のseleniumとかだと.dist-info以外にseleniumディレクトリも入ってるので
これが原因、つまり
$ python setup.py sdist
後の処理に原因がありそうです
もっかいインストールしなおしてみます とりあえず
$ python setup.py sdist
したあとインストール先のディレクトリに不足分のmypackageを手動でぶっこんだらimportできました・・ 自己解決しました
どうやらsetup.pyのsetup()にパッケージ名を指定してやらないといけなかったようです
(name引数だけでいけるのかと思いました)
packages=['パッケージのディレクトリ名']
もともとここを参考にしていたのですが
https://qiita.com/kobori_akira/items/aa42790354654debb655
setup.pyのカンマが余分なところをみると記述漏れですかね
試してませんがpackagesで指定しなくてもfind_packagesでもいけそうですね >>369
3次元以上の配列の存在を知らない、または可能性を思い付かないレベルの人間が、言語は統一すべきとか何言ってんのw >>369
言語を具体的な道具に置き換えると主張のおかしさが分かりやすい
世の中にはいろんな種類の刃物があるよね
ハサミ、包丁、カッターナイフ、ペーパーナイフ、刀、鋸
「なんで刃物を統一しようとしないの?
やること同じなのに、切り方が違うとか無駄じゃないの」 >>380
解決おめ+報告乙+えらい!!!
>>376
おう、気が合うなw
そして369が大人気すぎて草 >>371 あるに決まってるだろ。 XYZ座標とか習わなかったのか?
時間軸を増やせば4時限 >>386 其処はワープする。
しかしPython の数式関連のツールには圧倒されるな。
こんなのが自分の中学高校生時代に有ったら刺激ありまくりだったと思うけど。 既に棺桶に片足を突っ込んでる。 >>379
CとC++ですら、用途によって使い分ける必要があるのに、
言語の統一なんて無理でしょ。
統一できたとしても、マルチパラダイムでごちゃ混ぜ言語になって凄く使いづらくなると思うよ。
処理系任せで利便性を追求した、書いてないことを色々と実行してほしい言語と、
処理系が薄くて書いたことしかやらない言語の間で、
書き方を統一するなんてできないでしょ。 >>389
都道府県別人口動態の表なんかは、都道府県間を比較し始めたりすると実質的には3次元の表といえるような気もするが。
エンジンの燃料テーブルみたいなのも3次元以上の表になってるだろう。
物理や数学ならテンソルがあるから3次元以上の配列は珍しくないね。 >>389 2次元の表が有れば、3次元の表もあるよ。
Excel でも扱える。
でも複雑でばかばかしいから、配列で扱うんだけどね。 >>391
実質的とか言われてもw
> 都道府県別人口動態の表なんかは、都道府県間を比較し始めたりすると
それって表を時系列に並べたでかい表になってるだけじゃね?
>>392
> ばかばかしい
お前のレスかよw 表という抽象概念と、データの次元数と、それらを扱うための具体的なデータ構造が区別できない人は中学校に戻って4時限目の授業を受けましょう [[1,2,3],[2,3,4],[0,1,2]]
こんな感じの配列を配列内の要素の合計が多い順に並び替えたいんですが
いい方法はありませんか? >>393
「表」というと縦横の枠にデータを並べた表現形式のことだと思うが、
統計とかやっていると3次元以上の表もよく見るね。
行ラベルにもう一つの軸(次元)を載せたような。 >>395です。
配列の中の配列の要素の合計順に並び替えたいということです。 >>398
ありがとうございます。ためさせていただきます。 >>394
表と言う「表現方法」の話
むしろ区別できてないお前が中学校からやり直せw
>>396
絵画とかで三次元のモノを二次元で表現してようなもんやね >>395
x = [[1,2,3],[2,3,4],[0,1,2]]
print(sorted(x, key = sum)) >>400
で、その絵画は三次元なの? 二次元なの?
3DCGって三次元なの? それとも二次元なの?
その区別が出来てなかったから"三次元の表"の意味が理解できなかったんでしょ? >>402
> で、その絵画は三次元なの? 二次元なの?
えっ?
日本語の理解力がないの?
それとも引っ込みつかなくなった感じ?
> 3DCGって三次元なの? それとも二次元なの?
表現方法の意味がわかってないのね
3DCGを3Dプリンタで出力できる時代なんだよ
> その区別が出来てなかったから"三次元の表"の意味が理解できなかったんでしょ?
自己紹介乙w >>400
絵画は幅、高さ、色(RGB)だからデータとしては3次元 色はrgb/yuvで表せば3次元だがxyなら2次元だし波長なら1次元 >>401
ありがとうございます!!
勉強になりました。 >>408
違う。波長を考え出すならスペクトル分布を考えないといけないので無限次元。
人間の目には赤と青を混ぜた色は紫に見えるけど、
それは純粋なスペクトルの紫とは違うし、
白なんかはスペクトル上にはない色。 >>407
いずれにせよ、人間の視覚で感じる色を考えるとしたら、LMSの3つの錐体細胞で光の強さを感じ取っている以上、どんな基底変換をしたとしても3次元の値で表現されることになる。 >>406
要素数の話じゃなくて、3次元のテンソルで表現されるということ 言語統一表おじさんのおかげで、また盛り上がってきたね!
悪い方に >それを表って言うのかい?
>実質的とか言われてもw
>それって表を時系列に並べたでかい表になってるだけじゃね?
からの
>絵画とかで三次元のモノを二次元で表現してようなもんやね
さすがにこれは恥ずかしい
恥ずかしくて逆ギレしたくなるのも分かる 錐体細胞は入力数が1だと思っていた時期が俺にもありました。 >>414
恥の上塗り乙
引っ込みつかなくなってて可哀想w >>412
要素数?
幅、高さってまじで言ってたのか?w
左位置、上位置とかの座標の話と解釈してたんだが… import random
from numba import jit
@jit
def kansu(x):
____l=[]
____for i in range(x):
________a=list(range(10))
________b=random.sample(a, len(a))
________l.append(b)
kansu(100000)
こんにちは。パイソンを高速化したくてnumbaの勉強をしてるのですが、
全然早くならんのです。また「@jit("void(i8)", nopython=True)」って感じで型を指定すると
エラーがでてしまうのです。僕は何が間違ってるのでしょうか?
先輩たち助けてくだしゃあ。 [] に append は遅い
numpy の arrray 使わないとだめよ Python高速化するよりC++やRustで書き直したほうが早いよ l = [0] * 10
してからl[i]に値をぶち込んでいくほうが早いと思われ
もしくは
n = 10
a = list(range(n))
[random.sample(a, n) for _ in range(x)] 予め領域確保しておかないと遅くなるのはどの言語でも同じだけどな >>418です。
皆さん、ありがとうございます。
コードを書き換えてみます。
numbaの型指定で「@jit("void(i8)", nopython=True)」で
エラーがでるのは何故かわかるかたいませんか? >>421さんの
l = [0] * 10
の様なことを>>419さんのnumpyで実現する方法ってありませんか?
お二方の技を合わせることはできまんか? n = 10
lst = np.empty((x, n))
for i in range(x):
lst[i] = np.random.choice(n, n)
こっちのほうが早かった
lst = np.array([np.random.choice(n, n) for _ in range(x)]) >>426
ありがとうございます。
とても参考になります。 >>428
import random
n = 10
x = 10000000
lst = list(range(n))
lst = [random.sample(lst, n) for _ in range(x)]
-------------------------------------------------------
Wall time: 2min 3s
import numpy as np
n = 10
x = 10000000
lst = np.array([np.random.choice(n, n) for _ in range(x)])
------------------------------------------------------
Wall time: 1min 42s
>>426
早いけどなぜか乱数が重複するみたいです。。。
なぜだろう。。。 失礼。random.choiceはダメなようだ
lst = np.empty((x, n))
for i in range(x):
a = np.arange(n)
np.random.shuffle(a)
lst[i] = a
もっと早い書き方がある気がするのでnumpyプロの人よろしく… import numpy as np
x = 1000000
lst = np.random.randint(0,10,size=[x,10])
こんな感じだと早いんだけど重複しちゃうんですよね。。。 あ、すまん
numpyの方か
重複無しにしたいなら単純にreplaceをFalseで指定すれば良い
import numpy as np
n = 10
x = 10000000
lst = np.array([np.random.choice(n, n, replace=False) for _ in range(x)]) from collections import deque
d = deque()
for i in range(10000):
d.append(i)
これだとどうなの?
https://www.quora.com/Is-it-better-to-use-np-append-or-list-append >>436
普通に配列についかするより結構早くなりますね ぶっ飛びで遅いと言うか
スクリプト言語なんて大抵こんなモンじゃない? 動画サイトをスクレイピングする場合、動画サイトが埋め込みコードを提供していない場合は、自サーバにダウンロードしてから埋め込むという作業が必要なんでしょうか? 他人の著作物には、作者の著作権があるので、
作者以外の人は、配布・公開できません!
基本は、自分が作った著作物しか、配布・公開できない。
ただし、OSS, MIT のような、特別なライセンスがあれば、できます windows10のpython2.7.3にPyQt4_gpl_win-4.12.3を入れようとしていますが、
python configure-ng.py
を打ち込むと
Error:Make sure you have a working QT qmake on your PATH.
と言われてしまいます。
https://stackoverflow.com/questions/46570466/pyqt4-error-make-sure-you-have-a-working-qt-qmake-on-your-path に従いPCをqmakeで検索しましたが見つかりません。
どうしたらインストールできますか? 「make sure you have a working qt qmake on your path」で検索!
常に、エラーメッセージで検索する癖を、つけた方がよい >>444
スクレイピングするのはもちろんですが、埋め込みコードがない場合どうするのかなと >>443
検索したんですが、どれもqmakeの場所を検索することをおすすめしてきたので検索したところ
Edgeのキャッシュに謎の.jpgと.htmが入ってる以外それらしいものがないです
qmakeだけダウンロードできないかと思ったんですが配布してるところないみたいです
pythonもpyqt4もダウンロードしたばかりのものです ちなみにPython2.7.3+PyQt4じゃないと絶対ダメなん?
python2系のサポートが後数年で切れるから
python3+PyQt5の方が今後のために良いと思うが…・・・ >>446
Qt4自体やらVC++コンパイラやら先にインストールしとかないとだめなんじゃね
2.7系使うにしてもpipバンドルされてないほど古い2.7.3とかどんな縛りプレイしてるのよ
pip使えれば4.11.4だけどここのビルド済みパッケージだけでいけると思うけど
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4
2.7用はcp27、pythonが32bitの場合はwin32、64bitはwin_amd64 abc = input("パスワードを入力してください")
pw = "abc"
if in == pw:
print("Hello world")
else:
print("パスワード違います")
パスワードを入力すると「Hello world」と表示されるアプリを作ったのですが、
一つ問題が浮上しました。それは、ソースを見るとパスワードが筒抜けなんです><
アドバイスお願いします。 abc = input("パスワードを入力してください")
pw = "abc"
if abc == pw:
print("Hello world")
else:
print("パスワード違います")
訂正です。コードが間違ってました。 >>453
ハッシュ化?ですか。
どうすればできますか。 >>455
すません。5ch貼り付けるとインデントが消えるようです><
>>456
入力したさいにパスワードが見えないようになりますが
ソースにパスワードを記入すると丸見えですよね。
どうすればパスワードを隠せますか。 >>457
1が読めない池沼は初心者の質問板からでてきちゃだめ GUI を作れて
windows で作って、mac でも Linax(UNIX) でもそのまま動作する
という事が可能でしょうか? >>457
Webアプリ開発入門みたいなオンラインの学習コンテンツいくらでもあるから、そういうのから始めたほうがいい
そのレベルの質問をいちいちしてたら全く進まんぞ >>460
できないことはないんだが
Win同士でもバージョンが違うとちょっとどころじゃなくズレたり文字化けたりとかするじゃろ?
ああいうの起きるから結局GUI周りはOSごとに微調整するはめになるんよ >>462
分かりました。ありがとうございます。
MACとLinax結局は必要ですね >>463
もちつけ
綴りまちがっとる
あと、それぞれのバージョン・Linuxに至っては種類もいっぱい揃えような! 〇〇ができるって書いてあると色々妄想広げちゃうけど、ほんとにそれ必要?って考えないとね >>451です。引き続き回答をお待ちします><
心無い誹謗中傷はスルーします。 以後アオリもNGに追加させていただきます。
よろしくお願いしますm(_ _)m >>448
使うソフトウェアの要求で2.7.3使ってます。
私はもちろんpython3用に書き直すことはできませんし、マイナーな趣味なので他人が書き直すことも望めません。
qt4自体、ということですが、pyqt4はC++だったqt4をpython用に書き直したものなのに
どうしてqt4が必要になるのでしょうか。
また、どのようにqt4をインストールするべきでしょうか。 >>451
Ruby on Rails では、credential という暗号化機能がある
credentials.yml.enc というファイルに、例えば、以下のように設定値を生で書いても、
YAML ファイルを、Rails が丸ごと暗号化してしまうので、どういう設定か全く読めなくなる
aws:
access_key_id: 123
secret_access_key: 345
逆に、値を取得する際も、マスターキーで自動的に、ファイルを解読する。
つまり開発者は、マスターキーだけ持っていればよい Ruby病は重度の精神病で完治しないと言われている >>468
ハッシュ化っていうほぼ答え書いてもらってるんだから
「Python パスワード ハッシュ化」でググれば速攻で出るだろ
python3ならデフォルトでhashlibあるからそれ使ってハッシュ化しとけ
https://docs.python.org/ja/3/library/hashlib.html >>472
>qt4自体、ということですが、pyqt4はC++だったqt4をpython用に書き直したものなのに
>どうしてqt4が必要になるのでしょうか。
誰がそんなこと言ってるねん、あくまであくまでpyqt4はPythonでqtを使えるようにしただけで
書き直したとは一言書いてないぞ
とりあえずはQtをインストールしてqmakeのパスを追加するしかないな
(Qt自体もアップデートされてるから上手くいくはやってみないと分からん) >>475
ありがとうございます。勉強してみます。 pyqt4がpythonとqtの橋渡し役なのか、それともpython版のqtなのかわからなかったのですが、
橋渡し役ということでいいでしょうか。
また、qtは4.8と5.0がpython2.7.3とリリース日が近かったのですがどれにすべきでしょうか。 ttp://see-ku.com/wiki/wiki.cgi?page=Qt%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A5%E1%A5%E2
ttp://quitout.blog136.fc2.com/blog-entry-28.html http://download.qt.io/archive/qt/4.8/4.8.7/
どれがいいかよくわからないのでVS2010版インストールしてみました
環境はwindows10 64bit visual studioはバージョン1.49.1 mingwは無いと思います
C:\Users\(ユーザー名)\Desktop\PyQt4_gpl_win-4.12.3>python configure-ng.py --verbose
Querying qmake about your Qt installation...
Determining the details of your Qt installation...
C:\Qt\4.8.7\qmake\qmake.exe -spec win32-msvc2008 -o qtdetail.mk qtdetail.pro
Could not find mkspecs for your QMAKESPEC(win32-msvc2008) after trying:
C:\iwmake\build_vs2010_opensource_________________PADDING_________________\mkspecs
Error processing project file: qtdetail.pro
Error: Failed to determine the detail of your Qt installation. Try again using
the --verbose flag to see more detail about the problem.
pathはqmakeに通しても通さなくても結果は変わりません。
qmakeへのpath無しでCドライブ直下でqmake -vを打ち込んでもなぜかちゃんとバージョンが出ます。
64bitなのに32bitを探していておかしいと思いますがよくわからないです。
QMAKESPECをQT内で検索しても出てこないです。qmake.confならあるんですが。
エラー文章途中のアンダーバーの多いコマンドも試しましたが指定されたパスが見つかりませんと言われます。
検索して似た事例の英語回答があったので試しましたが
https://forum.qt.io/topic/18150/qt5-qmake-s-mkspec-path-location/3
C:\Users\(ユーザー名)\Desktop\PyQt4_gpl_win-4.12.3>qmake -spec /path/to/qmakespec
Failure to read QMAKESPEC conf file /path/to/qmakespec\qmake.conf.
Error processing project file: C:/Users/(ユーザー名)/Desktop/PyQt4_gpl_win-4.12.3/qtdetail.pro
となってうまくいきませんでした。 バージョン1.49.1ってVisual StudioじゃなくてVisual Studio Codeでしょ… Visual Studio CodeのZIP版を使っています
Microsoftのチュートリアルに従い
日本語化とPythonエクステンションをインストールして
Pylintの警告を出してインストールしたあと
ポータブル用の設定になっていないことに気づいてdataフォルダを作成
それから日本語化とPythonエクステンションをインストールしました
Pylintの警告を出すためにpyファイルを作ったのですが警告が出ません
エクステンションの設定を見るとPylint Enabledとなっていますがポータブルとしてインストールされているのでしょうか? コードが長くなってきたので書き分けたいのですが
分けなかったときと同じようにimportするにはどうしたらいいのでしょうか
分けない時
【my_module.py】
def hello1():
_print('hello1')
def hello2():
_print('hello2')
【main.py】
import my_module
my_module.hello1()
my_module.hello2()
my_moduleからhello1とhello2を分けたとき
【my_module.py】
def hello1():
_print('hello1')
【hello2.py】
def hello2():
_print('hello2')
【main.py】
分けないときと同じように
my_module.hello2()で呼び出したい レスした瞬間ひらめいたというか初心に戻り自己解決しました
my_module.py内でfrom .hello2 import hello2すればいいだけでした えっ別物だったの!?
道理でバージョンがおかしいと思った
VS2010 c++ express edition 入れましたが特に変化ないです スレチだったら申し訳ないのですが、どうしても自分じゃ解決しないので助けて下さい。
今週から勉強して始めたのですが、
Requestsのモジュールをターミナル経由でpipからインストールしてVS codeで入力してもno module named ‘requests’と出てしまいます。
環境Mac OS 10.15.4
Python ver 3.8
どなたか解決法教えていただけないでしょうか、よろしくお願いします。 pip3使わないとPython2の方にライブラリインストールされちゃうよ >>488
pip3 install requestsとかは?
そもそもインストールされたモジュールや
importするモジュールがどこに入ってるかを確認してしまえばいいのでは
必ずどこかのディレクトリから参照してるわけだし お二方夜分にありがとうございます。
調べたところどうやらpathが繋がっていないのが原因なのかなというところまでは掴めました
Terminalでpip3 install requstsとしてもalready satisfiedと出ております。
requestsの方は/opt/anaconda3/lib/python3.8/site-packages(2.24.0)
でVScodeでsysを見ると
Python.framework/Versions/3.8/lib/python/site-packages
になっておりました。
兎にも角にも普通にやってれば躓く所じゃない事が分かっただけでも助かりました! まぁそれならあとはVScodeから実行するならpython3のパスを通してやるか
Terminalから直接pyファイルを実行するならpython3で実行してみるか 488ですが無事解決しました。
何も考えずにYouTubeの動画のチュートリアルで言われた通りに入れたanacondaと、VScodeでInstallしたpythonのpathが合っていなかったのが原因でした。
完全にanacondaをアンインストールすれば実行できました。
お騒がせしました、ならびにありがとうございました。 指定した整数の回数だけ、同じカウントをやりたいのです
count = 0
life = 5
d = 0
for i in range(100):
_if d == life:
__d=0
__count+=1
_print(count)
_d+=1
# 000001111122223333344444555556666677777...
みたいなカウントの仕方です
dが野暮ったい気がするのですがもっとシンプルに書けないものでしょうか for i in range(100): print(i // life) >>496
できたーーー!
ありがとうございます! import itertoolsとnext()なる便利なものを知ったのですが
これ、”一周回ってきた”を知るにはどうしたらよいのでしょう
リストの長さをカウントするしかないのでしょうか? 意味不明
無限イテレータなら一周なんて概念はないし
listみたいなイテレータなら一周以上できないから一周しか存在しないだろ
変な説明するよりコードを提示して質問しろ ある自然数を適当に分割したいんです。
例えば100という自然数があったばあい10,50,16,24みたいな感じです。
教えてエロい人 ごめん。実際は3分割したいのです。
よろしくしまっす。 >>502-503
てきとうって完全ランダム?1,1,98とかもOKってこと? >>504
1,1,98でも構いませんが、
分割する場合、それぞれの値の期待値が同じになれば大丈夫っす。 分割する自然数=100
分割数=3
配列=[]
配列2=[]
for i in range(分割数):
配列.append(random.random())
for i in range(分割数):
配列2.append(配列[i]/sum(配列)*分割する自然数)
print(配列2)
ちなみに私が思いつきで書いた公式です。
結果が少数になってしまうので不採用となりました。。。 Python もマルチバイト文字が使えるようになったか。 >>501
import itertools
import time
ary = ['a','b','c']
it_ary = itertools.cycle(ary)
for n in it_ary:
_print(n)
_time.sleep(3)
これで一周回る、つまり毎回'c'がprintされたあとに処理をしたいわけです
(aryの中身は変わるので値'c'を比較してって意味ではありません)
len(ary) == iすればいいだけなのですが気になりまして >>505-506
期待値同じ縛りなのか・・・
合計がピッタリ分割もとの数になるように
ランダムさんを割り当ててくのってむずかしいきがした。
おれかんがえたのは
506の記法に従うと
max=分割する自然数-分割数+1
for i in range(分割数):
____tmp=random.randint(1,max)
____配列.append(tmp)
____max=max-tmp-(分割数+1-i) >>509
つまりitertools以外のものであれば
it_ary.count(今の位置を整数で取れる)だったり
'c'をprintし終わったあとに実行できるようなit_aryにコールバックを設定できたり
そういう慣例があるということでしょうか?
自分でそういうモジュールを作る、という話ではないですよね? ID隠してるやつは土着の?あらしだからスルーな>>all あらしと思わせたければIDを隠す
そう思わせたくなければIDを出す
これだけで精神レベルの低い人間を簡単に操作することができます おれいを言うとチヌ病気にかかってるアフォに目印ついて便利っちゃー便利>うんこ装着してID隠し >>512
f=True
while f:
_for n in ['a','b','c']:
__print(n)
_print('回った') >>510
ありがとう。
配列[0]に大きい数字が入りやすいけど最後に
シャッフルすれば期待値は同じになりそうですね。 >>500
StopIterationがraiseされる >>516
そうなんです
使わないのなら2重ループすればいいし
使うなら分岐でitertools自身の関数を使えるし
それらの落とし所を探っている感じです
>518
cycleはその名の通りstopしないのでしょうがisliceなどはtry:except StopIteration:で処理を分岐できました
ただ、もしかしたらという方法を何個か思いついたので試してみたいとおもいます
ありがとうございました コードを書く以前に日本語で仕様を書く練習をしたほうがいいやつが多いな 100個の候補から150個ランダムに出力する場合
期待値同じに出来ないだろう n = ['aaa','bbb']
m = ('ccc','ddd')
n = n + m
は通らないのに
n += m
は通るのはなんでだで? Pathlibで拡張子抜きのファイル名だけリネームしたいんだけど
renameの仕様が凄く気持ち悪い
なんでrename(’hoge’)でhoge.txtにリネームしてくれないんだ… >>525
ファイル名だけリネームならバッチで充分やろ そんなリネームする関数がある環境が知りたいわ
VBAとかにはあるのかな Pathlibのrenameはosのrenameを呼んでる
osのファイルシステム操作関数はposixインターフェースに習っている
文句はposixに言ってくるべき >>531
ren foo.txt bar.*
もしかしてこういうのを拡張子を指定しないと言ってる? >>483
ダウンロードしようとしたんですが、libclangにpython2.7.3時点のバージョンがないので
2.7.3のときは別のものを必要としたように見えます
あとなぜか Make sure you have a working Qt qmake on your PATH.に逆戻りしました
今更ですがpip使ったほうが早いですかね
ただpipもslscontext objext not foundとかでインストール失敗するんですよね とあるサイトをrequests.getするとres.status_codeで403が返ってきます
ブラウザからだと普通に繋がります
で、User-AgentやらRefererをブラウザのリクエストヘッダから写し取り
headersに設定したのですがやはり403です
何か他に思いつく要因はありますでしょうか?
ちなみに他のサイトだと403だったのがheadersの設定後、200のステータスコードを取得できました あと同じ403でもheadersを設定した場合と設定しなかった場合とで
微妙にrequests.get後のresponse.textの内容が変わってるので
headersやその他に足りないパラメータがあるのかと思うのですが・・ とりあえずブラウザ使ってる時のリクエストを丸コピする
copy as cURLしてどのヘッダーが必須なのかを
curl使って切り分けしてからコードにすると楽 >>537
あらためてコピペで設定したらすんなり通りました・・
なんらかのコピペミスだったのか
(あと、403になったあとに接続するとどうやら一定期間
同じipで全ページで接続できなくなる仕様みたいでした、それが関わっていたのかもしれない)
とにかくできました
ありがとうございました python2.7.3を使っています
python -c "import ssl; print(ssl.OPENSSL_VERSION)
OpenSSL 0.9.8l 5 Nov 2009
新しいバージョンのopensslにするにはどうすればいいですか?
https://github.com/pypa/pip/issues/4704
このページを見つけたのですが手順四番目の./Configureというコマンド?が認識されないです Windows98を使ってます。
YouTubeを見るにはどうすればいいですか?
Meにバージョンアップはできません
理由は
>>472
に書いてます class hoge:
_def __ini__(self):
__pass
__# ここ
_def tes(self):
__pass
def __init__とdef tes(self)の間のインデント(#ここ)って無い方がいいよね? 空白文字のみで構成される空行扱いになると思うので、どちらでも良いのでは? やっぱそうか
削除するよりも放置する(気づかない)ほうが簡単なのでとりあえず放置しとくかな・・ 行末が空白の連続で終わってるのは勝手にトリミングするエディタ使え >>546
フォーマッターは色々試したけどBlackが一番楽だったな
細かいオプション弄れないってのは目から鱗だったわ
ただデフォルトの1行88文字だけイケてないから、そこだけ変えてるな
99がpep8にも従ってるから理想だと思うけど、個人的には120ぐらいの方が見やすいからそれで設定してる) >>540
Windows98 というOS 自体が古すぎる。
サポート切れ
時間の無駄だから、捨てた方がよい
Windows7 でも、もうサポート切れだよ csv.readerで、10数桁の数値を読み込むと
指数表記になっちゃうんだけど、どうすればいい?
誰か教えてください・・・ csv.readerは関係ない。表示するときに勝手に指数表示されてるだけ。
print(f"{v:.15f}")
とかして表示方法を指定する >>551
返信ありがとうございます。
読み込みは問題なかったんですね。
処理した後データフレームを作成し、
df.to_csv('c:\\python\\aaa.csv',encoding='utf_8_sig')
で出力すると、情報落ちが発生てしまうのですが
これもデータフレームに書き込む際にフォーマット指定すればいいんでしょうか? すみません、上手く行きました。
ありがとうございます! >>545
失礼しました。バージョンは2004と書いてあります、これでいいでしょうか。 a = False
b = False
のとき、
これと
print(True if not a == True and not b == True else False)
これって一緒の意味ですよね?
print(True if not (a == True and b == True) else False) if hoge == True: は使うと問題起きるので
if hoge:
で良い not a == True and not b == True
これは ~A ∩ ~B
not (a == True and b == True)
これは ~(A ∩ B)
であって等価ではない
一番上と等価なのは
not (a == True or b == True)
これは ~(A ∪ B) ド・モルガンの法則だと、後ろの条件式はandではなくorなのでは? ベン図を描いてみたら? >>559
ドモルガンは公理であって法則ではない! >>561
数学的に厳密な話はわからないや、ごめんね。 >>557
(実際はif hoge == True:は使ってないのでどうでもいいのですが)
使ったとしてif hoge == True:で問題が起きるようなコードなら
if hoge:でも問題がおきるのでは?
そうではなくhogeがTrueとFalseしか取らない場合でも
== Trueすること自体に問題があるということでしょうか?
(つまりhoge=Falseのときでも、hoge==TrueがTrueとなってしまう)
>558,559
ありがとうございます
なるほどあらためて言葉に書き下ろしたり
このような図にするとわかりやすかったです
https://i.imgur.com/Io2rS55.png
>>556の後半は、aとbの重なった部分以外(aとbの一部含む)
になってしまいますね >>564
そのベン図が有効なのは集合の要素が有限、いやせいぜい可算個までの場合ですね
無限集合に対しては無力だと思います TrueとFalseの二値論理なら等価だし、二値じゃないならTrueとの比較は
hoge == True こそが唯一の正しい方法ということになる。 >>566
安価がないのでだれに言っているのかがわからないのですが
(流れからいってそうなのかな、と迷う書き方をされているので・・)
さらに>>556と>>557に系譜している返信かどうかもわからないので想像でかきますが
そもそも>>557は566に対しての返信じゃなく
独り言だったということでしょうか・・?
そうではなく関連した返信だった場合は話がズレていると思いますのでスルーしますねすみません
>>565
たしかに
もっと複雑なif文を一行で書こうとすると頭が混乱しそうなので
最初はネストして書いてから整理しようかなとおもいます >>549 >>555
いいけど
そのConfigureってやつはLinux系用の命令だから
そのままでは動くはずがないぞっと >>568
そうですか。それではwindows用のpythonのopenssl更新法を教えてください。 >>566
2 は True だけど True と等価ではないよね。 >>566は、排中律が妥当しない三値論理等の場合(その意味で直接的にはPytnonと関係しない場合)を想定した議論かなと思ったが、その場合、if hogeという書き方ができるかどうかは、ifの構文に依存するのでは?
仮に、(Falseの場合に対応する)elseとパラレルなキーワードがifに付け加わるとすれば、三値論理等の場合でもif hogeという書き方はできそうな気もするが……。
>>570は、TruthとTruthyな値を区別するか否かという==演算子の意味づけの話だよね。 Truthyならif hoge:
普通は使わないが Trueであることを条件にしたければ if hoge is True:
if hoge == True: は__eq__の定義次第で変化する >>539
4月20日、「Python 2.7.18」をリリースした。
「Python 2」シリーズは、本バージョンが最終。すべての開発は終了
Python 2.7.18 を使えないの?
もう、2系もサポート切れだけど
これに変えても、OpenSSL のバージョンが上がるかどうかは、知らないけど >>569
573がなんか書いてくれてるからそれ嫁 PythonとRubyのバージョン2はもう捨てていいの? >>565
プログラム板で扱う、しかも条件式の中での集合論理なのだから可算個の論理演算でなんの問題もない。板違い >>575
メンテなら止むを得ず2使う
ライブラリやモジュールが2系しかなければ使う
それ以外の新規なら3 >>575
1.8はもう捨てていいのではないかと思われ
1.9はR*b*Motion(iOS/macOS環境)があるから、完全には捨てきれない
いずれにしても、ライブラリやフレームワークといった移行性に問題が
無ければ、確実に性能向上が図られている2.xへ移行するのがベスト
もちろん性能、何それ美味しいの?って人は1.8.7を使い続けてもいい
特に日常的なテキスト処理に標準ライブラリだけで楽しんでいる人であれば、
後方互換性は維持されているから1.8から2.xまでお好きなように味見すればいい >>572
>普通は使わないが Trueであることを条件にしたければ if hoge is True:
この辺は動的言語特有の落とし穴があるから、安易に「使わない」とは言わない。 ブラウザからだと普通に繋がるのに
それと同じプロキシ、同じヘッダ使っても
pythonのrequestsからだとCloudflareのキャプチャに飛ばされる
何かまだ設定しないといけないのだろうか?
どちらにせよCloudflareに接続後に取得しているとみられるPHPSESSID周りが怪しいと思ってるんだけど 別の串にしたら普通に繋がったわ…
お騒がせしました 皆さんありがとうございます。
結局anaconda使うことにしました。(pipがインストールできなかったので)
サイズが大きくまた機械学習はやらないのでほとんどが無駄ですが
容量はありますしやりたい作業が終わったらたぶんさくっとアンスコするので無問題です
質問は二つです
・使いたいソフトがpython2.7.3までのバージョンを指定してくるのですが
2.7.3で動いて2.7.4以降で不具合が出るソフトがありうるでしょうか。
・Traceback (most recent call last):
File "C:\Users\ユーザー名\Anaconda2\lib\site-packages\enchant\_enchant.py", line 143, in <module>
raise ImportError(msg)
このエラーの直し方を教えてください。windows10バージョン2004です。 Python 2.7.3 と、2.7.18 は、パッチバージョンが異なるだけだから、基本的には同じでしょ。
ちょっとした修正
だから、
>>573
で、最新版にすれば? と言った 5ch の運営は、ダブルクリック対策も知らない馬鹿
ちょっとした連続クリックで、2回書き込まれてしまう 同一内容文のマルチポストチェックはされてるはずなのになんでなんだろうな この前LinuxコマンドかSQL書いたら規制されたぞ WebApp & APIになってるからじゃね?
昔ながらのhtmlのsubmitならダブルクリックで2重になるってことはないでしょ。 csvファイルを読み込んでも、中身がnanになってしまいます。解決方法をおしえてください そもそもマルチ
>>590-591
最近可笑しいよね たぶん、数値として読み込んでいるけど、数値と解釈できないから まず環境はメモ帳にソースコードを書いてそれをコマンドプロンプトでじっこうしています
コードは以下の通りです
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
from numpy import genfromtxt
from scipy.signal import argrelmax
my_data = genfromtxt('data1.csv')
print(my_data) csvファイルはエクセルで
1 1
2 2
3 3
というものを作りました これを実行すると
[nan][nan][nan]
というものが出てきます
nanをきちんとした数字にする方法を教えてください メモ帳で
1 1
2 2
3 3
を作ってください
csvじゃないけどなw >>600
やってみます
そのあとはどうすればいいのでしょう? >>600
メモ帳ので実行したらうまくいきました.ありがとうございました。 while True:
____time.sleep(10)
____動かしたいコード
として、10秒間隔で動くものを作りたいと思っています。
しかし、実際に動かしてみて、datetime.now()で取得した時間を同時に出力させると、10秒キッチリには動いてくれません。
具体的には、10.2秒ぐらいに1度の頻度になっており、ズレが段々と累積してしまいます。
この誤差を出来る限り少なくするためにはどうすればよいのでしょうか。 >>604
次に動かしたいタイミングを絶対時刻で記憶しておいて、現在時刻との差分だけスリープするようにする >>605
ありがとうございます。
なんとか目的のものが作れそうです。 macでadministrator以外のユーザーに
python環境構築するにはどうしたら良いのでしょうか?
administratorユーザー環境に入れてあるのを使用できたりしますか? >macでadministrator以外
kwsk >>609
1台のMacに複数ユーザーを作った場合に、
administrator権限を持たないユーザーにpython環境構築したいのですが。
試しhomebrewをインストールしようとしましたが、
sudoがどうこう言うのでインストールできません。 バージョンを特に気にしないのなら、システムのをそのまま使えばいいんじゃないの?
普通にやれば(sudoしなければ)、仮想環境は個人の領域に作られるわけで。 >>610
3.7以上を入れたいのです。
自分のところは問題無いんですが、職場の他のユーザは管理者権限ではないので。 マックは何か入れるときって必ずAdminのパスワード求めてくるんでねーのんけ
しかも最近のバージョンにはルートレスとかいう機能が入ってるから
それ切らないとどうしようもなかった気が 再度調べてもみましたが、管理者権限がないユーザに対しての環境構築は難しそうですね。
ありがとうございました。別の方法を考えます。 pyenvを入れられさえすればなんとかなりそうだけどな。
管理者権限あるMacでpyenvインストールして持ってきて適切にパスとか設定すればなんとかなはなりそうだけど。 >>615
自分以外のMacにも管理者権限アカウントで入ることはできます。
ただ使う人が管理者権限の無いアカウントで使用しているので
その環境にpythonやpandasを入れたいのです。 >>616
簡単ではないだろうが出来るとは思うよ。依存関係のあるバイナリやファイルを全部どこか別のところに用意すればいいのだから。
ただ、具体的なhow toはないと思うけど。
brewとかなしでpythonをビルドしなおすために必要なソースを全部用意してビルドするのが簡単かな。
簡単といってもかなり手順は多いだろうけど。 >>617
試してみますが、自分のスキルではできなさそう。かつ面倒くさそうですね。
やるとしたら複数台やらなきゃいけないので。 >>614
管理者権限でどっかに必要なバージョンのPython入れてから各ユーザがvenvで環境作らせるのはできないの? Homebrewのインストール自身にsudo必須だったかは忘れたが
少なくともbrew updateやbrew installにはsudo不要なので特定バージョンのpythonやpandasを
管理者権限のないユーザーがインストールする分には全く問題ない
Pythonのインストーラをダウンロードしてinstallerコマンド使うのでも普通にいける
ただbrewやinstallerコマンドで特定のバージョンを直接インストールする方法だと
複数バージョン使う事になった時に面倒なのでpyenvみたいの使ったほうが簡単 homebrewを入れなきゃいけないものだと思っていたのですが、
無視してpyenvから始めたら、あっさりできました。
みなさんありがとうございました。 一応手順です。同じことでつまづかれた方がいたら。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
pyenv install 3.7.4
echo eval "$(pyenv init -)" >> ~/.bash_profile
pip install --upgrade pip Pythonをつかってロボットアームを動かして部屋の片付けをやらせたいのですが
やりかたがいまいちわかりません。なにをどうすればいいですか? >>624
おすすめのロボットアームとライブラリなどありましたらおしえてください。
右も左もわからない初心者です。 部屋破壊するようなサイズのにして
空っぽにしてもらうとすっきりするぞ >>625
自分の手に電極をぶっ刺してラズパイに接続するか
自分の手を動かして部屋の片付けをやらせた方が早いよ 学生が勉強用に買えるようなロボットアームってあるの?
もちろん掃除とかは無理だと思うけど 安いものだと2万円くらいのロボットアームがありますね >>633 NVIDIA の jetsonで遊んでみたら? jetsonは頭だけじゃん
アームが欲しいって言ってるんですよね?
てかPython関係なくね?
プログラム板じゃなくてロボット技術板じゃね? せやねぇーARMちがいのCPUアタマでややこいわ
せやから工学的にはアクチュエータていえばええのんか
つかステッピングモータかラジコン用サーボとホムセンや百均で自作すんのとちゃうか?
Arduinoプログラミングのアプリみたいなエディタてあるんかいな? matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか >>640
はい、マルチポストってやつですね
さよならー PILでshowしたイメージウィンドウを自動で閉じたい(右上のバツボタンを押さずに)のですが
どうやってやるんでしょうか
.close()や.destroy()してみましたがダメでした
img = Imag3e.open(file)
img.show()#window出現
time.sleep(3)
#windowを閉じる window出すときに割り当ててるviewer(あぷり)次第 stackoverflow.com/questions/6725099/how-can-i-close-an-image-shown-to-the-user-with-the-python-imaging-library もし viewer が Microsoft.Photos.exe なら
im.show()
time.sleep(...) のあとで
import psutil
for proc in psutil.process_iter():
if proc.name() == 'Microsoft.Photos.exe':
proc.kill()
で消えることは消える(これが良い方法だとは思わない) >>646-648
なるほど
viewer次第なんですね(ちなみに実行環境はlinuxです)
ほんとはpysimpleGUI上で画像を表示させようとしたのですが
ダウンロード→保存→パスから表示→必要なくなったら削除
という方法以外でやろうとしたらうまく行かなかったので
PILで別々に画像だけ表示しようとしたら
今度はビューワを自動で閉じれない問題が発生したのが>645だったのです
とりあえずもう一度pysimpleGUI上で表示する方法を模索してみようと思います stringIO とか byteIO でメモリから読ませる方法があるはず >>650
とりあえず一度ダウンロードして保存してパス指定して云々でpysimpleGUIで表示
はさきほど成功しました
byteIOでPILのImage.show()も成功
pysimpleGUIのimage_filenameにbyteIOしたものを入れてみましたがだめでした
stringIOでやってみます ボンミスというかpysimpleGUIにImageがあることを見逃していました
どこぞのチュートリアルみてボタンとかのパラメータから
バックグラウンドでしか画像表示できないものだと思ってました
sg.Imageできそうです 解決しました
ざっくり書くと
response = requests.get('画像のurl')
image = response.content
これをpysimpleGUIのlayoutで
[sg.Image(data=image)]のように読み込む
io.BytesIOしなくてもあっさり表示されました Pythonの自動操作プログラムのサンプルコピペしたら複数のステートメントがどうとかで動かなくてもうだめぽ tesseract-ocrインストールしてpytesseractで数字認識できたのですが
背景にちょっとでも線入ると急に精度がガタ落ちするのですがそういうもんですかね? やっぱ前処理して数字だけクッキリみえるようにしないといけないですよね・・ 入れたいソフトウェアのもともとの頒布元見つけたんですが
身バレ怖いんでリンクは載せないでりどみのインストール方法だけです
windows10とmacmojabeを持ってますが強いて言えばmac使いたいです
mac用
Install them
Python 2.7 :Not the 64-bit version
PyQt4
PyEnchant ←「pythonが32bitなのに64bitだから入らない。32bitについてのpythonのmanを読め。」
のようなエラーが来てmanを読みましたがそんな項目はなかったです。
Java :Must be available on PATH on Windows ←これが理解できない。
使いたいソフトの中に.javaがないのも謎です
windows用1
Install Java if you don't have it in your computer.
http://www.java.com
Must be available on PATH on Windows
Start "open.bat".←入れたいソフトの中に入ってない謎のファイル
windows用2
Open the "HOW TO INSTALL " folder.
Install the file "python-2.7.15.msi". Make sure to enable the option
"ADD PYTHON-EXE TO PATH". "
Install "PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe"
and "pyenchant-1.6.6.win32.exe". ←ググっても32bitは見つからないです
一応この方法だけは試しましたがエラーでした
WindowsError: [Error 126] 指定されたモジュールが見つかりません。
どれも理解できず失敗しました。どれでもいいのでうまくいく方法はありませんか。
ソフト作成者に聞こうかと思いましたがほかの人の質問に答えてないあたり無理そうです > "pyenchant-1.6.6.win32.exe". ←ググっても32bitは見つからないです
嘘つき?無能?どっち? なんでこういう奴ってどいつもこいつもソフト名書かないの?
同一人物? 自分も初心者でROM専門だけど、質問者の質は低いのが多いと思うわ 日付と時刻で並べ替えをしたいのですが、
df_summary = df_summary.sort_values(['recording_date', 'recording_time'], ascending=[True, True])
で並べ替えできません。
どこが間違っているのでしょう? >Java :Must be available on PATH on Windows ←これが理解できない。
>使いたいソフトの中に、.javaがないのも謎です
a.java は、単独のファイルだろ。
Java は、tar, zip などの圧縮アーカイブの一種だろ これか?微妙に違うけど
https://github.com/Liquid-S/SDSE2-PORTABLE
javaはリポジトリにjarファイルが含まれてるから必要っぽいし、open.bat(正しくは(0)Open_Editor.bat)はREADMEに書かれてるリンク(Releasesページ)から落とすeditorに入ってる それです。すいません特定班舐めてました
散々手間かけてもらって本当に申し訳ないです。どうかどれでもいいのでインストール方法教えてください。お願いします。 ダンガンロンパ2っていうゲームをゴニョゴニョするためのツールか どうせ中韓語に翻訳して海賊版を流通させるつもりだろ csvに下記のデータが入ってます。
[[日付,来客数],
[2020/9/9,15],
[2020/9/10,18],
[2020/9/11,12],
[2020/9/12,17]]
日付から曜日を取得したいんだけど。。。
教えてください。。。 import io
import datetime
import pandas as pd
csv = '''
日付,来客数
2020/9/9,15
2020/9/10,18
2020/9/11,12
2020/9/12,17
'''
df = pd.read_csv(io.StringIO(csv), header=0)
print(df)
wn = ['月', '火', '水', '木', '金', '土', '日']
f = lambda s: wn[datetime.datetime.strptime(s, '%Y/%m/%d').weekday()]
df = pd.concat([df, df.iloc[:, 0].apply(f).rename('曜日')], axis=1)
print(df) 2020/9/9でググると木曜日って表示されるよ
無理にPython使わんでもよくね? 別に webAPI 使っても構わんが
リアルタイムの時刻とか使うときは
timezone 考慮しとけよ >>670
ありがとうございます。
使わせていただきます!! pandas使うならto_datetimeしてstrftimeでも曜日の文字列取れるよ
locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')
df['曜日'] = pd.to_datetime(df['日付']).apply(lambda x: x.strftime('%a')) >>662
自己解決しました。
>>> df['Date'] =pd.to_datetime(df.Date)
でdatetimeオブジェクトに変換する必要があったんですね 3.7から3.8にした
パッケージをいちから入れ直すのはめんどくさかったけど、
バージョンアップで上書きはしないほうがいいんだよね? 下みたいなインデックスのない数値計算結果(テキストファイル)を読み込み
特定の列を消す書き方がよくわからないです(2列目と3列目だけ消す)
ファイルの整形からグラフのプロットまで一つのpythonファイルでやりたいのですが
整形だけがうまくいかない
お知恵をください
result.txt
1 1 0.00000 0.00000 0.000000E+00 5.569085E+02 5.569085E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.189474 0.000000E+00 5.594460E+02 5.594460E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.378947 0.000000E+00 5.668875E+02 5.668875E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.568421 0.000000E+00 5.787263E+02 5.787263E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.757895 0.000000E+00 5.941398E+02 5.941398E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39 matplotlibがうまく動かなくないからpython 3.6に戻した import re
result = '''\
1 1 0.00000 0.00000 0.000000E+00 5.569085E+02 5.569085E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.189474 0.000000E+00 5.594460E+02 5.594460E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 1 0.00000 0.378947 0.000000E+00 5.668875E+02 5.668875E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.568421 0.000000E+00 5.787263E+02 5.787263E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39
1 2 0.00000 0.757895 0.000000E+00 5.941398E+02 5.941398E+02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 3.60E-06 39'''
q = re.compile(r'^(\d+)\s(\d+)\s(\d+)\.(\d+)\s', re.M | re.I)
for s in result.split('\n'):
m = q.match(s)
if m:
print(f'{m.group(1)} {s[len(m.group(0)):]}') >>680
ヒントだけ。
csv.reader(f, delimiter=' ') Ruby なら、これで最初の列を削除できる
require 'csv'
# 引数は、入力ファイル名。ヘッダー行あり
table = CSV.read( ARGV[ 0 ], headers: true )
# 列モードにしてから、最初の列を削除する
table.by_col!.delete( 0 )
puts table Pythonによるデスクトップアプリ開発の質問です。
何十年ぶりかに趣味のプログラムに手を出そうとしています。
触れたことがある言語はCを少しとVBです。
基本、Windowsで動けばいいと考えて調べた結果、
Python、Java、VB.net、electron
の4つに絞りました。
また趣味で手軽にやるならPythonがいいかなとおもいました。
そこでですがPythonでは実装が出来ない、
または無理があることを教えて頂けますでしょうか。
スピードとかは気にしません。
Python3を始めるつもりです。
よろしくお願いいたします。 コマンドプロンプトに
pip install tensorflow
pip install keras
と書き込んでkerasをインストールしたいのですが、インストールが終わって
import keras
をメモ帳に書いて実行してもうまくいきません
以下のようなエラーが出ます
Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow` a = []
に
a[3]="aaa"ってやるとエラーがでますが
自動で[None,None,None,3]みたいに入ってくれませんか >>686
「とか」ってなんだ「とか」って
>無理があること
なんだったっけかな
こっちじゃない方のPythonスレで
仕様上どうしてもかゆいところについて先月あたり話題になってた気がする
あと、VBよりCが好き派なら
やめとけとしか。 >>689
dictionary使えばいいケースではないの?
foo = {}
foo[3] = “aaa”
どうしてもlistでやりたいなら要素数固定にして先にNoneで埋めるかIndexErrorを拾って自分で拡張するか
foo = [None] * 10
foo[3] = “aaa” >>692
>>695
fooを定義するときにNoneで埋める数がわかってると先に埋めちゃいたいのですが
後々わかるパターンなので、その”最初だけ”をifで分岐するか
おっしゃる通りtryで拾うことにしていますね
実際は
a={"a":[],"b":[]}
みたいな感じなので
a={"a":{},"b":{}}
dictionaryで初期定義してやれば分岐やらエラー処理無しでできそうです
(ただ、a["a"][2]とかも参照したい(空なら別の処理)のでそのときにエラーを拾わないといけない?)
ありがとうございました 本日Pythonの勉強を始めた者です。
こんにちは。私はパイソンです。と出力するために
s="こんにちは。"+"私はパイソンです。"
print(s)
と入力したところ、2番目のダブルクォーテーションが赤く囲まれ、invalid character in identifierと表示されてしまいました。
どのように修正すればいいでしょうか?
Pythonのバージョンは(3.8.6)です。 俺のESP能力を見せてやんよ
>>697
1つ目のダブルクォーテーションが全角になってる >>698
ご回答ありがとうございます。
どちらも小文字になるように初めに「"」だけを続けて2つ入力してから文字列を作ってみたのですが、それでも同じエラーが出てしまいました…。 申し訳ありません。こちらの勘違いで、全ての"を全角で入力していたようです。
しかし、半角に修正して入力したところenterを押した瞬間消えてしまい入力が出来ませんでした。 連投になってしまいすみません。
恐らくプログラミング以前の問題だと思うので自分で調べ直してきます。
ありがとうございました。 VSCode で、Microsoft の拡張機能でも入れれば?
構文エラーぐらい、チェックしてくれるだろ >>686
CLIかWebのアプリならPythonでok
GUIアプリを作りたいならC#がいいよ。 >>690
>>704
返信ありがとうございます。
「とか」はまんまです。上2行以外と言う意味で、多分言われやすそうなスピードを例にあげました。
いろいろとサンプルコードを眺めたりしたのですが、
PythonはGUIにはあまり向いてないんですか。
ライブラリはすでに充実していて行けてそうだったんですが、
別のスレッドの記事はまだ見つけられないでいます。
何か情報お持ちの方おりましたら、引き続きよろしくお願いいたします。 >>696
内側のdictを造るときにkeyが無い時のdefault値を設定しておける >>704
C#でGUI造るとき
Windowsformsが良いのかWPFが良いのかその他何があるのか >>705
python 使う条件なら wxPython とか PyQt とか tkinter
C# を否定はしない >>705
PythonでGUI組むなら、PySimpleGUIが使いやすいぞ >>707
WinFormsが簡単、WPFは必要な知識が多いので初心者が趣味でやるにはハードル高い
データ分析系とかPythonのライブラリ使う場合でもGUIはC#で作ってPythonのコードを呼び出すようにしたほうが簡単 C#とIronPythonの組み合わせが最強ってことでおk? IronPythonは2.7なのでそれで我慢できる用途にしか使えない C♯からPythonコード呼び出すって、そんな事できるの?
APIとか使うんか?それこそ初心者にはハードル高すぎやしない? 連携するなら外部コマンドとして呼び出すかPython for .NETみたいのを使う >>714
ありがとう。そんなことができるんやね。 外部コマンド呼び出す程度のハードルを越えられないようならGUIアプリ作るのは厳しいかと 漏れは、Ruby スクリプト中でも、python を実行したりしてるけど
puts `python3 -c "print( 'a' )"` プロセス間通信してjsonとかでデータをやり取りするのがよくあるパターンかな。プロセス間通信を覚えると1つの言語に縛られなくなって、適材適所で特定の部分を書くのに得意な言語で書けばよくなるから開発が楽になるよね。 Pythonの次に覚える言語はなにがおすすめですの? >>706
ありがとうございます
これは使えそうですね(配列にもあればいいのに。配列版defaultdictを作ればいいだけだとは思いますが)
d = {}
d[3] = 11
print(d[3]) # 11
print(d.get(3,None)) # 11
print(d.get("3",None)) # None
print(d.get(1,None)) # None
from collections import defaultdict
dd = defaultdict(lambda:None, d)
print(dd[3]) # 11
print(dd[1]) # None 配列版defaultdictはNone埋めの配列確保しとけばいいんじゃ 先に埋める数がわかっていればその方法で良いと思いますよ 価格データ集めて価格.comみたいな安値表示するサイト作ろうと思ったけど
やること多すぎて無理だ
とにかく手動の手間がないほっといたら勝手に収益化できるようなお手軽サイトないかなあ >>724
それ、とても使えるとおもいますよ
株価でそれをやってみてください
この株とこの株は、株価に相関がある、とかが使えそうです デープランニングで株価予想とかやったらもっと集客できそうやね エンジニアの考えるサイトってほんとセンスねえよな
偏差値40の馬鹿が頭空っぽにして使えるサイトじゃないと安定した集客も利益も出ねえよ Pythonはまともなguiライブラリがないからな GUIアプリつくったと思ってもCUI画面出てくるのがウザすぎるんだが
せめてGUIに埋め込めたらいいのに エンジニアチャンネル
https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ
【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
粟島が、アービトラージをRuby でやってる
【検証】プログラミングで株価予測すると1週間でいくら稼げるか?
粟島が、Python でやってる
【悪用厳禁】Amazonの価格を監視するシステムを作ってみた
小川が、Ruby でやってる
Amazon API を使って、LINE へ通知する HTMLとCSSでGUI作ってJavaScriptと連携するってのはあり? >>737
jupyter notebookがやってます >>738
ほえー。すでにやってる人がいるんだね! ぐぐったらjupyterとipywidgetsの組み合わせが最強っぽい
簡単なGUIはこれでよさそう
それ以上高みを望むなら多言語と連携かな? 俺の中ではElectron.Netが最強
あとはゴミ >>699
パイソンのソの字でエラーを出してる。ソを入れ直したらエラーはなくなる。 なぜこれだけ最強の言語なのにGUIだけ糞なのだ
誰かこのスレの奴、GUIライブラリ作ってよ
マイクロソフトのみたいなデザイナーも実装してくれ
まともなのできたら1万円までなら出してもええわ マイクロソフトが良質な開発ツールを作ったら反対する奴がいるんだよ
そういうやつらのせいで生産性があがらない >>743
wxPython + XRCed
これで充分 いまのpythonのトレンドはごりごり型アノテ書くことだぞ Firefoxのお気に入りのurlを一括取得したいのですがいいライブラリとかないですかね? >>743
本格的なGUI開発をするならPythonの言語特性が足かせになるから皆簡単なGUIまでしかPythonでは作らないんだよ。
非同期処理をちゃんとコントロールしなければならないので、その辺のサポートが手薄い言語を使うのは辛いよ。OS依存のAPIを呼ぶこともかなり多いし。
なので、GUIやりたいならマジで使ってるOSで定番となってる言語で作るべき。WindowsならC#だし、macOSならSwift
とりあえず文字を打ちこめてボタンが押せればいいんだ、ぐらいの話だったらwxPythonでもPyQtでもなんでもいいと思うし、GUIを作るのに向いてないという発言は気にしなくていいよ。 グイって必要なん?
自分用なら動作してることが確認できればじゅうぶんだけど >>749
C#はUnityにも使えるし良さげだけど、将来性はどうなんやろうな。
PythonとJavaScriptは20年後も現役な気がするけど。。。
C#は消えてそうで怖いなw >>752
Windowsが使われなくなるか、MSがC#以外の言語を数年以内に発表してそっちが主流になればあるかもしれないけど、
C#はWindowsでは盤石の地位を築いてるのでなかなかないと思うよ
ちょっと冗長なくらいでコンパイル言語の中ではかなりの優等生だし
そもそも、5年後の話ならともかく20年後の状況なんて考えても仕方ないだろう
言語とは関係のない破壊的イノベーションが起きてても全くおかしくない >>753
そうか。PythonのGUIとしてC#使ってみようかな。 YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむので非効率。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
C/C++ などのポインタ系や、ハードウェアの仕組みなども、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
ただし、Unity は、AWS でも採用しているように、スマホアプリで使う。
今後、iOS, Android のネイティブ開発と、Unity のシェアがどうなるか?
ウェブアプリは、Rails の1強。
単機能なら、サーバーレスのAWS Lambda が流行る >>747
そこまでするぐらいなら他の言語使うべきかも beautifulsoupでaタグかつurlがhoge.comのものを抜き出したいです
find_all('a', href='hoge.com')
みたいに指定することってできませんかね? Ruby, Nokogiri で、
CSS セレクター、a[href="abc.com"] で検索すると、
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html><body>
<a href="abc.com">abc</a>
<a href="xyz.com">xyz</a>
</body></html>
EOT
elems = doc.css( 'a[href="abc.com"]' )
puts elems[ 0 ].text #=> abc >>755
ケンタは古いタイプのエンジニアでGUIやフロントはまったくできないから参考にならんよ
ユーザーが使う側の開発できない奴はそっちはデザイナーがどうのこうのとか見向きもしないからな
デザイナーがReactとかやるのかよ 全部pythonでやりたければブックマークが保存されてるテーブルをsqliteで読む >>757
import requests
from bs4 import BeautifulSoup as _soup
import re
res = requests.get("http://httpbin.org/")
bs = _soup(res.text, "html.parser")
href = bs.find_all(href=re.compile(r'github\.com'))
print(href) 訂正 bs.find_all("a",href=re.compile(r'github\.com')) beautifulsoupの質問する人のCSSセレクター使わなさ加減はもはや異常だね
ドキュメントがクソ過ぎるのかな find_allにしてるのが何か意味あるのかなと思ったわ
正規表現使い回ししたいとか a = bs.select('a[href*="github.com"]')
デメリットあるのだろうか あのドキュメントはリファレンスでなくクックブック的すぎる スクレイピングしたいなんかの目的だけ先にあって、
そのための最短の勉強しかしてないからCSSセレクタの利便性、確実性がわからん、ってなってるんじゃないの?
Webのコーディングしたことある人なら結局人間の見た目に関わることはほとんどCSSセレクタで実現してると
経験してるからCSSセレクタが確実と理解できるのだろうけど。
自分もbeautifulsoupやってから仕事でデザインデータからHTML/CSS書くようになったから、
所詮CSSなんて飾りでしょみたいに軽く考えてた人の気持ちはよくわかる。 自分の目的に必要ないものって興味わかないんだよな
Pythonはじめる前は本買って全部マスターしてやろうと思ってたけど、結局必要な知識以外覚える気なくなった
何かコードがあっても自分の目的のものに使えるかどうかでしか見ない。それ以外はただの豆知識としてスルー >>763
ありがとうございます
無事できました
CSSセレクタは普段はFirefoxの開発者ツールで算出したものをそのまま使っているのですが,今回はHTMLの仕様が特殊?なのか分かりませんが
うまくtextを抽出することができなかった(return が None)ので,findで無理やり抽出しました
こういった場合はどうすれば上手くいくんですかね?
Python
pastebin.com/7D70dGUk
対象のHTML
pastebin.com/M7k2wffz HTMLのスクレイピングにCSSセレクターの基礎知識は必須でしょ
だけどbeautifulsoupの質問してくる人の大半がCSSセレクターの存在すら把握してなさそうな印象を受ける
他の言語では見られないパターンだからbeautifulsoup固有の問題だと思う >>772
猫も杓子もPythonと言ってて、プログラミング始めた人たちがまず始めに触るのが
Pythonだという状況もあるんじゃないか
スクレイピングならbeautifulsoupを使いましょうとだけ言ってめちゃくちゃ簡単な例だけ示してる適当な本が多いとかもなんとなくありそうな気がする
CSSセレクタの知識は必須だというのには同意なんだけど、初心者は「なんで余計なことが色々書いてあるんだろう、この本はわかりにくい」とか判断して買わずにそういう適当な本を買いそうだし いくつか質問があります
教えていただければ幸いです
機械学習のためにAnacondaをインストールして使っています
IDE環境は何がおすすめでしょうか?
Pyhon3ではprintに()が必要とのことですが省略する方法は無いものでしょうか?
()を毎回打つのが思いの外苦痛ですがみんな気になりませんか?
エディタについてスペースが多いようですがタブではダメですか?
タブだとカーソル移動、例えば→1回でネスト後の文に移動できますが、
スペースだと4回も押す必要があり
更にネストがあると移動するだけで8回も押す必要があり使いづらく思っています
更に7スペース目で文を書くとエラーが出るなどタブと異なりスペースは使いづらく思うのです
エディタは一応昔からなので秀丸ですが設定次第でしょうか?
ヒア文?について、"文字" よりも '文字' をよく見かけますが'って打ちにくくないですか? >>769
CSSセレクター?DOM?
よくわからないけど、HTMLをタグで解析する方法じゃダメなの?
HTMLに問題があっても取得できることが多いし(エラーを吐いて止まらない)
何よりHPの更新があっても一度書けば意外と動き続けるイメージがある
例えば現在値XXX円</tag>
こんな感じだと現在値 と 円</で挟めばHTMLが変わっても使い続けられるイメージ 構造がある文書に、正規表現を使うのは、おかしい
普通、パーサー・CSS セレクターを使う。
例外的に、XPath もある
Python の香具師は、jQuery, Ruby のNokogiri をやっていない香具師が多すぎる NokogiriってQiitaに「インストールする方法」が大量に書かれてるアレ?
ゴミクズはまずまともなパッケージングできるようになってから一丁前の口を利くべきだね ノコギリはlibxml2ベースと書いてある。
これは結構ハックが多そうだけどな。 ハックとかハッカーとか、いまどきの若者はカッコいいとか高度とか良いイメージ持つようだけど、正規ではない方法で小手先の継ぎ接ぎを行うことで、イマイチな方法論だからな。
たとえば、ノコギリが○○タグを認識してくれないというとき、規格に沿うようlibxml2を修正するのが正規の方法。
※とはいえ、libxml2を規格に沿うよう修正するのは無理です。
libxml2に渡す前に文字列を正規表現で加工し、libxml2の出力を再加工して○○タグを認識したように見せかけるのがハック。 Hack ← わかる。
Hacker ← わかる。
Hackest ← わからない。 libxml2 は、Linux で、どの言語でも使っているのでは?
Ruby on Rails をインストールすると、build-essential が入っていれば、
自動的に、Nokogiri もコンパイルされる
build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています >>774
()省略したいと思うけどprintのintは省略したいとは思わないのかな
タブの件はエディタの使い方をググりなさいな dominatn_arm side
右 右
というdfがあって右だけを変数に切り出したいのですが、
side=df['side]
prind(side)
とすると
0 右
と出力されseriesになっているようです。
side列、2行目を指定して''右’という文字だけを切り出すにはどうすればいいのでしょう? >>771
from bs4 import BeautifulSoup
import urllib.request
r = urllib.request.urlopen('https://pastebin.com/raw/M7k2wffz')
b = r.read()
soup = BeautifulSoup(b)
for _ in soup.find_all('a'): print(f'{_.string} {_.attrs["href"]}') >>777
1.11.0からキッズ向けにプリコンパイル配布されるようになるよ!
これで「Nokogiriのインストール方法」みたいなバカみたいな新規記事が減るね
ただしWindowsはハブられた
まあ、Windowsでプログラミングとか、ぴゅう太で商用アプリを作ろうとするようなもんだから、その辺はWSLで我慢しとくべきだ >>782
レスありがとうございますm(_ _)m
print のintは考えても見なかったです
意味がわからなくなるのでそのままでも良いかも
でも省略になれるとそっちのほうが良さそうですね >>774
カッコ入力するのが面倒ならプログラミングなんかやめたほうがいいよいろんな記号入力するんだから
カッコ書かなくていい利便性なんか、 Python2でUnicodeテキストを処理するときの面倒臭さを考えると消し飛んでしまう。
まともなエディタ使ってたらタブを勝手にスペースにしてくれる。
てかVSCodeとか使ったほうがいい。
' は、US配列とかDvorak配列ならshift押さなくても打てるから楽なんで ' で打ってる人が多いのではないかな。
Pythonに限っては、打ちやすい方でいい、単なる好み。
キーボードの配列も好み。 >>775
HTMLのパースに正規表現を使うのは、ガチでアンチパターン
どうしようもないときに仕方なくそれを選ぶぐらいのもの
"円</div>"が突然、
"<span class="currency">円</span></div>"とかにマイナーチェンジするかもしれないし、
必要な部分を親子関係考慮して適切に抜き出すのも正規表現ではとても難しいので、
書くのに時間がかかるくせに柔軟性がないから避けるべき >>790
Python3から入ったんだけどなんだかカッコに慣れなくて・・・shift毎回押すのが嫌なのかも ()なくても分かるし
エディタは秀丸を昔から使ってる
VSCodeっIDE?Anacondaに適してる?
IDEは大昔Java使ってたときにEclipse使ってたカッコなど補完してくれて助かってたからまた使いたくなってる
ただ言語との相性が結構あった気がするからどんなのが適してるか気になってる
自動でスペースにしてくれても何かでカーソルが移動したときに何度も矢印キータイプするの面倒じゃない?タブよりもやたらとスペースが普及してるけど・・・
’はUS配列で楽だからなのか・・・Unicodeもそうだけど日本語ってだけでハンデあるな >>792 () を自動的に入れてくれるのを使えば良いじゃん >>792
そんな書き込みするよりカッコ1000回入力するほうが楽、慣れるが一番
カッコなんて他のところで一杯出てくるんだから気にするだけ無駄
そんなに記号打ちたくないなら本当にプログラミングやめたほうが良いと思う
VSCodeはAnacondaに適してるよ
キータイプなんか別に面倒ではない、押し続ければカーソルは動くのだから。
好みもあると思うが、個人的にはタブのところだけ加速するほうが気を遣うから面倒臭い
カーソルが思ったところにやってくるまでの時間なんか、次にどんなコードを書けばいいか考えているうちにすぐ過ぎ去ってしまう
これも好みだけど、タブとスペースが混在していてそれを気にしなきゃいけない状態のほうが面倒
日本語入力だってUS配列やDvorak配列で出来るんだから、ハンデだと思うなら
キーボードの配列変更ツールとか使って変更すればいいだけの話、'を簡単に入力できる前に、
配列の違いに慣れるのにそれなりに苦労するのを我慢できればの話だが
自分はDvorak派だけど、仕事ではJISもUSも打つことがあるので全部打てる、要は慣れ
面倒とかハンデとかいって秀丸使ったりダラダラ5chに書き込んだりしてる前に、
もっと調べて、さっさと色んなツールを試せばいいんだよ
プログラミングなんて、ベテランになったって結局、延々と調べる、試すの繰り返しだから、
いちいち面倒くさがる奴は本当に適性ないと思うよ。
一回試すのに1ヶ月かかるなら面倒だと思うのもわかるが、10分とかで試せるんだから。
printが面倒くさいならJupyter Notebookを使ってプログラミングするという手もあるけどね。
1 + 2とInセルに入力して実行したら、
Outに3と出てくる。いちいちprintしなくていい。 VSCode の拡張機能、Code Runner がおすすめ。
ファイル全体か、選択したコード片を、右クリックメニューから実行できる
これで、REPL もいらない
>>787
Windows のRuby Installer では確か、Nokogiri もプリコンパイルされていた。
ただ、Web Socket がプリコンパイルされていないので、
MSYS2 みたいなコンパイル環境が必要で面倒だから、
漏れは、Windows 10, WSL, Ubuntu 18.04 へ移った classの中で自分自身のclassを実行できないの・・?
class hoge:
_def __init__(self,f=None):
__print('hoge.__init__')
__self.f=f
__if f==None:
___return hoge("hoge")
__return self
h = hoge(None)
print(h.f) >>792
真面目にタイピングの練習でもした方がいいんでないの?
頭の中で考えたコードを手で入力する際に、思考を遮らない程度には素早く滑らかに、息をするかのように入力できるようになっておいた方がストレスがたまらなくていいぞ。 >>792
なんでPythonで秀丸っていう縛りプレイしてるねん
VSCode使ってアドイン入れたら自動補完が出るからそれやっとけ
(IDEならPyCharmもあるけど、無料版だと機能制限的に途中で詰まる所が出てくるから機械学習目的ならVSCodeの方が楽)
ちなみにPythonはPEP8の規約でスペース4つって規定されてるから、スペースで統一されてる
というかエディタの機能でCtrl+左右キーで区切りの所に一気に飛ぶから
そんな事気にした事無かった >>797
__init__じゃなく__new__使って カッコがいやとか言うと begin .. end にされちうぞ。 最近のvscodeのjupyter統合の力の入れ具合すごいで >>> 5 % 2
1
>>> '123%d567' % 4
'1234567' 横から
pyautogui使ってスクショを連続して保存したいんだけど、
画像の形式って選べないの?
pngで保存したんだがjpgと画質変わらん >>794
適正がなくても面倒くさがりでもプログラムってのは面倒を自動でやってくれるから可能な限り楽に使いたいと思ってる
というか面倒くさがりな人だからプログラムに頼るんじゃないの?
主に証券の自動売買とデータ解析、Arduinoの操作に使ってるけどやってることは人力でもできる
でも1分に1回価格を調べるとか手作業じゃ面倒すぎる。結局めんどくさがりなんだよ。
秀丸ディスられてるけど一度覚えたら癖みたいなものも分かるから面倒がないと思ってね
良いエディタ見つけたら最低でも10年は使い続けたい
少し前に友達が秀丸以外のエディタで編集してプログラムがバグった
調べたら自動で文字コード変わってたりBOMつけたり一つ環境変えるだけで想定外のエラーが出てその間プログラムが正常に動かないとか困った
もっと言えばWindows10を使ってるけどUIはWin98に近づけて使ってる
慣れるのが大変だから環境の方を親しんだものに変えてる
とはいえ限界はあるからどこかの時点でリープフロッグするようにしてる
あと、気軽にインストール言ってくれるけど今のPC環境壊れると困るから結構怖い
他のプログラムのDLLが関連ファイルとして変更されたりソケット通信やCAがおかしくなってエラーが出たりPythonのインストールだけで何度かすでにトラブってる VScode,Jupyter Notebookについては人気みたいなので使ってみようと思う
アドバイス助かる
>>798
タイプそのものはかなり早い方
Realforceの全30g使ってる
ただ腱鞘炎になってから少しでも文字数少なくしたいと思ってる
音声入力も試したけど文章はいいけどプログラムでは全く使えないわ
printについては本当に頻繁に使うし以前使ってた言語で不要だったからイライラするというのが大きい 慣れるわ・・・ >>809
60代とかなのか?
めんどくさがりでも、新しいもの好きじゃない人はとマジで適性ないよ。
瞬間的な集中力はあって、新しいものは試せるけど、ずっと同じことやるのは無理って人が向いてる。
あなたは未だに22年前のUIを使ってることに疑問を抱かないことからして、
面倒くさがりというよりは何事もやる意欲が湧かないタイプなだけで、なにかとやらない理由を探してるだけ。
環境壊れて困るならVMとかに開発環境作る方法もあるわけだし。
やらないことには知識も身につかないんだから意識変えなきゃずっとそのままだよ。 >>809-810
Pythonとかのプログラミングはやめとけ
VBA@エクセルどまりがお似合い >>812
そうしたいのは山々だけどバックグラウンドで自動でArduinoの制御や株式の自動売買とWebとの連携(実際にはVPSで動かしてる)ができないと思う
ExcelのVBAは使ったこと無いから知らないけどできなさそうなイメージが有る >>813
前使ってた言語はなんなの?
それに近いおすすめの言語教えてあげるよ。 >>812
Pythonが現代のVBAだぞ
考え方も使われ方も同じ ストレートに言ってやるけど
面倒くせえ奴っぽいから理由つけて追い払いたいだけ >>794
>>809
禿同
つか長文でここまで書いてあげるって性格良すぎだろ
グダグダ言い訳ばかりで変わろうとしない老人の相手より自分のメンターになってほしいわ >>811
OS変わる度に1週間位は試しているけど、どうにも慣れないんだわ
特にWin10とか例えば使いたいプログラムがすぐに見つからないとかでイライラしてしまった
よくみんな気にせず使えるなと思ってしまう
VMは試したことあるけど重たくなるから断念した
前に使ってた言語はPerl(32bit)シリアル通信に解決できない問題が生じてPythonを始めた
あと、TensorFlow使うにはPythonが良いらしく始めたところ スコープの問題で変数を前もって制限しなきゃいけないときってNoneでやればいいのですか?
hoge = None
if fuga==1:
hoge='maguro'
if fuga==2
hoge='neko'
print(hoge)
みたいな場合です。None以外で〇〇で初期化して宣言するのがお約束みたいのがあったら教えて下さい。 >>821
それ1行目のhoge=Noneはなくても別によくない? 別に初期化する必要ない
fugaが1or2以外のケースを定義する必要があるかどうかでしょ
if fuga == 1: hoge = 'maguro'
elif fuga ==2: hoge = 'neko'
else: hoge = None おそらく、可視性なんかで
あるべき、あったほうがいい
を聞きたいのでは? >>820
Windows 10, WSL, Linux もある
ベンチャー企業は、AWS, CircleCI, Ruby on Rails ばかり採用する。
唯一の例外が、TensorFlow で、GCP を使う場合
Azure は、採用する理由がない >>820
ubuntuを使ってるんなら
同じようにWindowsでも使いたいアプリって
Winキー押して検索窓で打って使いませんか? >>820
いずれは古いOSは使えなくなるんだし、皆移行していくんだから、
昔のほうがつかいやすかったとか愚痴言ってないで
1年ぐらい経って落ち着いた、仕事に影響が出てもクリティカルじゃないタイミングで最新OSにすべき
新しいOSへの移行は既定事項だから、自分は使えるからと先延ばしするのは、未来の自分の首をどんどん絞めてるのと一緒だよ
みんな(とくに職業プログラマー)は仕方のないことだから無理やりなれてるだけなんだよ >>808
pyautoguiのスクショ関係はPILのラッパーなのでPILを直接叩くのが正解 webkit2gtk+python3で簡単なepubビューアを作っていて、
ブックマーク機能を実装しようと思っているのですが、
現在表示されている画面左上の文字列を取得するにはどのようにすればいいのでしょうか?
おそらくjavascriptを使うのかもしれないかもしれませんが、検索してもなかなか引っかりません。
ぜひお教えください。 ちょっと言葉足らずでした。
左上の文字列を取得して、ブックマークを「xhtmlファイル何枚目の文字列〜」で登録後、
ブックマークに飛ぶ時はバックグラウンドで検索してブックマークの文字列に飛ぶようなのを考えています。
これならウィンドウサイズが変わってもブックマークは同じ位置なので有用だと思うのですが、
肝心の最初の文字列〜を取得する方法がわかりません。 guiに関してはpythonで全てやることは諦めてflask+javascriptでもやった方がいいんでないの。 >>822
スコープの問題でif分の中で宣言した変数はif分の中でしかつかえないのでは・・・ >>832
pythonはクラス・関数単位のスコープで、ifやforではスコープ変わらないよ
明示的に初期化しておきたいならNoneがいい場合もあれば空文字列の方が向いてる場合もあるしケースバイケース calibreのソースコード見ていたらepubcfiなる索引規格があるようです。
これを使ったほうが早そうです。どうもお騒がせしました。 import re
s = 'aiue o ka ki'
m = re.search('*', s)
print(m)
'*'で、sがなんであってもマッチすると思ったのですがエラーでました
'.?'だといけたっぽいですがこれは”なんでもマッチ”と同等でしょうか? *は「直前の文字が0文字以上続く」であって
それ単体だと何ともマッチしない >>836
そもそも''に正規表現が使える?みたいなので*単体でもいけるのかと思っていました
とりあえず''は何もない文字として、'.*'としたところうまく?いきました
ありがとうございます 下記のようなバーチャートで1つ目の項目だけ赤色にするにはどうすればいいのでしょう?
# Write bar chart
left = [1, 2, 3, 4]
height = [object_dependent_uns_index,
selective_attention_disorder_index, late_response_index, persistence_index]
labels = ['object_uns', 'selective', 'late', 'persistence']
plt.bar(left, height, color='blue', width=width,
tick_label=labels, align='center') >>838
ぐぐり足りませんでした。
colorlist=['red','blue','blue','blue']
plt.bar(left, height, color=colorlist, width=width,
tick_label=labels, align='center')
で自己解決しました。
スレ汚し申し訳有りません。 >>831
PythonでGUIをやるならEEL一度
これが最強 >>841
クラスとDBとHTTPがわかってたら難しくない
至って普通の作り >>842
自称エンジニアの何割が知ってますかねぇ… >>841 と >>843 が同一人物かどうかは知らんが
知名度と選択基準は分けて考えた方が良いぞ
特に初心者なら猶更 >>842
通りすがりのものですが
PHPをやった事あったら挑戦しやすいかな? >>845
「PHP で何をやったか」だ
>>846
どっちでもいいよ >>847
7年ほど前にPHPで在庫管理のwebアプリをXAMPPで構築してみた事がある程度の初心者です
Pythonに興味あるんですがwebアプリとの連携
(妄想ですが、MySQLのデータで機械学習等)
が出来るかどうか気になりふらっと
このスレをのぞいてみました 帰りにまた、ふらっと立ち寄って見るかもしれません。ではまた。 Oracleのチュートリアルで機械学習がある
わざわざPython覚える必要すらない >>844
本でDjangoを扱っているので、
自分でも出来るのか気になりました Djangoの書籍なら図書館に何冊か置いてるだろうから、とりあえず借りてくれば FastAPI の人気が高まってるね。 flask に似てるがドキュメントを作ってくれる。
パフォーマンスが高い。
performanceは「japronto >>> FastAPI > responder >>> Flask ~ Django」だと言えそう
FastAPIとresponderはsingle workerだと秒間100~1000程度のrequestであればpython界で圧倒的なperformanceを誇るjaprontoとほとんど同水準
2020年08月21日に更新
[FastAPI] Python製のASGI Web フレームワーク FastAPIに入門する
https://qiita.com/bee2/items/75d9c0d7ba20e7a4a0e9 たいていのベンチャー企業では、Rails, AWS, CircleCI を使う。
その唯一の例外が、GCP で、Tensorflow
Azure を使う理由はない >>851
チュートリアルだってWebに日本語で転がってるのだから、やってみたらいいのよ。
もしくは読むだけでも使えそうかどうかはわかるんじゃない? >>854
業界2位のクラウド環境に向かって何様だよ
現実を認識しろ生ゴミガイジ アメリカ政府はAzure採用しちゃったからね
これからのAWSはオワコンになるかもしれない
(ちなみに日本政府が採用したのはAWS) ifでA and Bを使った時、もしAがfalseならBを処理する必要はないので
Aのみ処理でifを抜けるだろう、というのを確かめるために
def a(f):
_print(f'a = {f}')
_return f
def b(f):
_print(f'b = {f}')
_return f
if a(False) and b(True):
_print(True)
else:
_print(False)
としました
たしかにa()のみの実行となりましたが
それはどんな環境でも常にそうなるものなのでしょうか?
ifの入れ子にする必要なければandのまま行きたいです 優先順位を考えることと
if 中に複数の関数を直接書くときは関数の副作用に注意
(特に内部状態変更されるクラスとか使ってるとき)
副作用嫌うなら事前に実行した値を if に入れるんだろうけど
質問の趣旨からすればそれはしたくないようだし >>858
>それはどんな環境でも常にそうなるものなのでしょうか?
はい
"式 x and y は、まず x を評価します; x が偽なら x の値を返します; それ以外の場合には、 y の値を評価し、その結果を返します。"
https://docs.python.org/ja/3/reference/expressions.html#boolean-operations >>858
>それはどんな環境でも常にそうなるものなのでしょうか?
―> Yes
and/or は(他の +/- といった算術演算子とは異なり)短絡評価されると
Pythonの公式ドキュメントで明記されている
短絡評価という概念に関しては「Python 短絡評価」でググッてください >>859
つまり>>858の例だと_a=a(False),_b=b(True)とおいてif _a and _b:
みたいにするってことですかね(あえて_a判定後に_bを置かずに)。
b()がファイルやウェブ検索の結果だった場合に
そもそもb()したくない的な問題があるので悩みどころではあります。
>>860,861
なるほど
コードのぱっとみで短絡評価かどうか個人的にわかりにくかったのですが
それは文法というかそういう概念だからと考えるべきなのでしょうね
ありがとうございました >>862
X というオブジェクトがあるとして
if X.a() and X.b():
みたいな操作をするとき
a() も b() も独立なら良いけど
a() や b() が X の内部状態を変更してて
特に b() の判定前に a() の結果が b() の結果に影響を及ぼすとかそんな時の話
本人にしか判らんだろうから気を付けてってだけの話 for分、またはそれに類似するもので
listの先頭数個分を一気に取り出すことってできませんか?
for i1, i2, i3 in range(10)
みたいな感じで使いたいです for i, j, k in np.array(range(9)).reshape((3, 3)):
print(i, j, k)
0 1 2
3 4 5
6 7 8 >>852
ありがとうございます
まずPythonの文法を勉強したいと思います
>>855
ありがとうございます
おいおい見てみます 参考書1冊勉強したけどコード書ける気がしません…
これからどういうふうに勉強していけばいいかアドバイスくれると嬉しいです >>867
ハローワールドくらいは済ませたの?
そもそもPCにPythonインスコは済んでるの? 要素数が異なるとき
np.resize() は要素を先頭からループ
for i, j, k in np.resize(np.array(range(10)), (4, 3)):
print(i, j, k)
0 1 2
3 4 5
6 7 8
9 0 1 要素数が異なるとき
ndarray.resize() は 0 を代入
a = np.array(range(10))
a.resize((4, 3), refcheck=False)
for i, j, k in a:
print(i, j, k)
0 1 2
3 4 5
6 7 8
9 0 0 一番人気気の言語にしておけば問題ないよ。
今やPython かc の二択だろ。 >>869
その辺は済ませました
参考書に載ってるコード打ち込んだりwebに転がってるソースコードコピペしてどんな感じに動いてるのか試したりしました じゃああとは作りたいものができるまで特段何も上達しないのでは>>873 オンラインでコード書きながら学習できるサービスあるからそういうのやってみるといいと思います
paizaとかそういうの 定期的にchunkingの質問出るけどどのやり方も微妙だよね
標準で用意してくれてもいいのに >>864
i1, i2, i3 = arr[:3] import tkinter as tk
root = tk.Tk()
tk.iconbitmap(default='icon.ico')
root.mainloop()
みたいにタスクバーの左上にアイコン入れようとすると
起動時なんかワンテンポ遅れるような挙動あるけどこれ仕様??
対策知ってたら誰かおすえて >>878
アイコンをMIME BASE64化したデータをPythonのコードに埋めておき、読ませる 練習問題でmatplotlibというのが出てきたのですがこれはjupyterでしか使えないのでしょうか IDLEだとどう宣言して使えばよいのでしょうか >>880
その問題の解説やヒントにのってないのか?
宿題なら、宿題丸投げスレへいどうしる
むしろjupyterで使うのはちょっと変化球なんじゃ… >>878
そもそもアイコンのサイズはちゃんとタスクバーの左上とやらのサイズになってんの?
リサイズ必要なクソ品質のアイコン食わせてたら
そら重いぞ >>881
載ってないです
ソフトを入れてやってくださいと書いてます
宿題ではなくフリーのサイトを見ながら勉強しております >>879
エンコードの方がいいのか
ありがとう
一応アイコンサイズは削ってやってる
ところでBase64エンコードだとファイル容量33%くらい増えるけど
容量より単純にローカルから読み込むよりも挙動の改善が見込めるて
考えでおk? >>873
1冊勉強したというが、そんなのは勉強したとは言わんよ。ただ書かれてるのを打ち込んだり、コピペしただけで、自分の頭では何も考えていないだろう。
本で出てきたサンプルコードを自分なりに変更してどう挙動が変わるのか、どんなエラーが起こるか、どうやって解決するか、こんなことが出来るのではないか、なぜ思った通りにならないか、色々と試行錯誤したり調べたりして、習った個々の要素を理解して自分で使えるようになるまでやってみなよ。 初心者はまず住所録を作ろう
全ての基本がつまってる Pythonの配列(list)って違う型の要素を入れてもいいんですね
ちょっと怖い… 業務前提のプログラミング学習で最初に乗り越えなければならない事はデータベースへのアクセスだ >>884
Base64 は、ファイル内に埋め込んでいるから、ファイル読み込みしなくてもよい
ただし、サイズは大きくなるから、サイズの小さいアイコンなどに限定した方がよい >>864
p (1..8).each_slice(3).to_a https://www.sejuku.net/blog/63816
ここに書かれているos.walkの使い方なんですが、文字列とリストは結合できません、というエラーが出ます。流用するときにはprint文は使わないので実害はないのですが、どうすれば動作させられるのでしょうか?
もう一つ
txtファイルがフォルダ内に有ればそれを開いて処理、無ければ次のサブフォルダに移るという動作をさせたいのですが、うまくいきません。
for curDir, subDirs, files in os.walk(pDir):
if os.path.exists(glob(curDir + '\\*.txt')):
処理
よろしくお願いします Ruby には、walk がない
glob しかない >>895
1つ目の質問はエラーになるコードをどこかに上げるか
エラーになってる行番号みて文字列とリストを結合してるところを修正して
2つ目のはos.walkでもできるけどpath.globやglob.globで.txtまで指定したほうが簡単
from pathlib import Path
for x in Path('.').glob('**/*.txt'):
__with open(x) as f:
____print(f.read()) >>880
よく知らないけど、IDLE は、CUI・コンソール端末じゃないの?
画面がない。テキスト表示するだけでしょ?
普通は、VSCode を使う
よく知らないけど、
matplotlib, jupyter などは、HTML, CSS, JavaScript じゃないの?
WebGL で描画してるのでは? >>898
よく知らないなら推測で初心者の質問に答えるな。
初心者が混乱するだろうが。
WebGLなんかで描画してない。 >>899
そいつは>>1でスルー推奨されているこの板の有名なキチガイだよ。
まったく言葉が通じない。 >>893
そのフリーサイトとやらの指示にまずしたがえよ >>897
1 コードは挙がっているものをそのままコピペして親フォルダのパスだけ変更しました。エラーはサブディレクトリを列挙するところで出ます(リストなので)。サイトの実行結果を見ると、文字列(種別)のあとにリストの内容が列挙されていますが、自分の環境では文字列とリストは結合できないと蹴られます。現在のディレクトリはリストではないので問題ありません
2 ワガママを言って申し訳ありませんがos.walkを使って一例を書いてもらえないでしょうか >>902がなにひとつ897を理解できてなくてわろるwwww >>895
sejuku は糞サイト
ブロックして良いレベル
google で検索するなら -sejuku >>902
for curDir, subDirs, files in os.walk(pDir):
for filename in files:
if filename.endswith('.txt'):
print(open(os.path.join(curDir, filename), 'r').read()) マコなりの所は最悪、sejuku の解説は良いと、
誰かが動画で言ってた ublacklistとback2stackoverflowはプログラマには必需品だな >>910
思い込みでなく、実際に試してどういう実装になってるか把握してから発言しろ。
試さずに思い込みで嘘を言うのはエンジニア失格だ。 PythonをPyInstallerでビルドしてexeファイルにした後、そのexeを起動してる時に
外部のプログラムからビルドしたexeファイル内のPythonの関数を操作する...みたいなことをやりたいんですが
そういうのってどうやったら出来ますか?APIをユーザーに提供するようなことがしたいのですが... >>912
関数呼び出しを基礎としたプロセス間通信(IPC, Inter-Process Communication)の
手法は大きく2種類、RPC と RMIがある
RPC(Remote Procedure call:遠隔手続き呼び出し)は、
古典的な手法で汎用性があり言語非依存だが実装は面倒になる
「RPC Python」でググればいくつか解説記事が見つかるので
(xmlrpc/json-rpc/Mproc/gRPCなど)、そちらを参照
RMI(Remote Method Invocation)は「分散オブジェクト」と呼ばれる
オブジェクト指向言語の分散化から発展した手法で、
言語依存(原則、記述言語間での通信に限定)だが実装は簡単になる
Java RMI(Java)、dRuby(Ruby)などが有名で日本語情報も豊富にある
Pythonで該当するのは PYRO(Python Remote Object) になるが、
英語情報しかないから、気に入れば挑戦してみればいい
ぶっちゃけ今時の手軽の実装手法は、サービス提供側アプリでHTTPサーバ機能を実装し、
利用側アプリからはHTTPでアクセスするというWebサービス化だろう
この場合、提要するAPIは(Python関数ではなく)URLになるけれどね >>907
ありがとうございます!さっそくやってみます >>907
フォルダにサブフォルダしかなくてファイルが存在しない場合もあるんですがその場合はどうすれば? py2exeでexe化したんだけども
例えばwith open('list.txt')みたいな感じで使ってるファイルはどうやって認識させるの?
dist内にファイルはあるんだけど読み込まれてないんだよね >>907
何度もすみません
フあィルが存在しなくてもエラーは出ませんでした
ありがとうございました >>914
とても丁寧にありがとうございます!
勉強になりました >>917
テスト(開発)環境では list.txt がカレントディレクトリ ./list.txt にあって
本番環境では list.txt が dist/list.txt にあるんだろ? 諸先輩方質問させて下さい
csvをdfに読み込んでから 当該csvに
追記し csvに反映させる方法を探しています
具体的には
山田,25
鈴木,35
のdfに
佐藤,45 を追記して
山田,25
鈴木,35
佐藤,45
のdfにしたいです ちなみに列方向
山田,25,A
鈴木,35,AB
佐藤,45,O
には出来るのですが行の追加が上手くいきません... 環境はpandasです
よろしくお願します >>921
pandasはPythonのバージョンでもOSの種類・バージョンでもねぇよ >>920
間違った情報を堂々と掲載すんのやめて欲しいわ…
とあるモジュールを除外してOKって書いてるブログ信用したせいだった >>923
おれの経験からエスパーすると
ブログ掲載当時はなくても動いたが
py2exeのバージョンなんぼかからは、除外しちゃうとexeが動かなくなるモジュールがひとつふたつある csvにエクセルかなんかで書き足してもう一回dfとして読み直せばいいんじゃないかな
マジレスするとdf.loc("名前") = 数値
で渡瀬 nun = 1〜100の自然数
numが8以下の時はそのままの数だけforを回す
numが8以上の時は8回ごとに
for i in range(8)
を分割して合計numまでforを回したいです
どうすれば出来ますね? >>926
residual = num
while residual > 0:
count = min(residual, 8)
for i in range(count):
pass
residual -= count
さっきちょうど同じコードをCで書いた。
定石的なコードだね。 for i in (i%8 for i in range(num))
の誤り お二人ともありがとうございます
ただ、このコードだと恐らくi>7のときにiが0に戻ってしまうと思うのですが
i=8以降は回した回数も考慮する(8,9,10と継続していく)ことって出来ますかね?
別変数に回した回数持たせれば良い気もしますがそれだとちょっと不格好だなと 日本語で仕様を説明できないやつの頭の構造は理解できんな pythonやperl使いは見た目や短く書く事に固執してかえって効率悪いことする人結構いるよね Pythonは他人が作り上げた見た目の良さに縛られる
ユニクロで人形を指さして「あれと同じものください」と言ってるようなものだ
初心者でも間違う事はないし、基礎を叩きこむにはちょうどよい
しかし、さらに何かを目指すのであれば、いつまでもPythonをやるわけにはいかないのだ 肝心な部分をふわふわ表現してるのは何も無いってことだよ >>933
効率が多少悪くなってもコードの意図が明確になるならそれでいい
上の例で言えば頭の中では8以下かどうかで場合分けして考えてるんだからまずそれをコードで表現すべき
意図が不明確になる最適化を施す必要があるならやればいいけどそれは自分の意図を表現できてから >>921
df = pd.DataFrame([['山田', 25],['鈴木', 35]], columns=['a', 'b'])
print(df)
df = pd.concat([df, pd.DataFrame([['佐藤', 45]], columns=df.columns)], axis=0)
print(df) >>926
それって結局[1..100]を[[1..8],[9..16]..[..100]]ってリストのリストにしたいって事?
だったらそう書いた方が、forだけでコツコツする以外にも簡単な方法とか出るかも。
例えばスライス使うとか
a = list(range(1,101))
print(a[:8])
>[1,2,3,4,5,6,7,8] 8以下と8以上でダブリが出るから元の仕様が間違ってると思うけど
[1]
[1,2]
[1,2,3]
[1,2,3,4]
[1,2,3,4,5]
[1,2,3,4,5,6]
[1,2,3,4,5,6,7]
[1,2,3,4,5,6,7,8]
[0,1,2,3,4,5,6,7]
[0,1,2,3,4,5,6,7]
...
[0,1,2,3,4,5,6,7]
って出力が欲しいのか? 最近、pythonを学び始めたのですが、どうもうまく行かないので
ご教授ください。
pandasでやや大きいdataframeがあり、そこの任意の位置にデータを書き込みたい
のですが、ilocのスライス指定で変数の計算がうまくいきません。
例)
g += 1
retu1 = i*6
retu2 = i+5
df.iloc[g,retu1:retu2] = [ 1,2,3,4,5 ]
~~~~~~~~~~~~~~~~~~~~~~
この行でValueErrorが出て止まる。
イメージとしてはforループの中で5個を横に次々に並べて行く感じです。
※1〜5は実際は変数です。
下記のように実数だとうまくいきます。
output_df.iloc[g,0:5] = [ 1,2,3,4,5 ]
なにか対処法あるでしょうか。
どうぞアドバイスをよろしくおねがいします。 >>941
別にそこが変数だからエラーが起きてるわけじゃないだろ。
retu1とretu2の値をチェックしてみたら? ユニクロ人形構文
〈言語X〉は他人が作り上げた見た目の良さに縛られる
〈店舗〉で〈見本〉を指さして「あれと同じものください」と言ってるようなものだ
〈行為者〉でも間違う事はないし、〈行為〉を叩きこむにはちょうどよい
しかし、さらに〈曖昧な目標〉を目指すのであれば、いつまでも〈言語X〉をやるわけにはいかないのだ >>942
>>943
ありがとうございます。
そうでした。retu1よりもretu2は5 大きくなければならないので
i+5ではだめですね。
なにか思い込んでいたようです。
無事前に進めました。ありがとうございました。 デバッグの仕方を勉強した方が良いよ。 その方が早い。 VSC使ってるんですが、デバッグってどうやるんですか? >>947
ブレークポイント設定してF5
あとは流れで ブレークポイントは初心者には難しい(覚えた方がいいのはたしか)からprint()とdir()を駆使したほうがいい WindowsでtkinterのGUI作ってMacで動かしてみたら
レイアウトがグチャグチャになってるんだが
この原因てなに?? >>953
だいたいのところ、GUI表示に使うフォントが違うから
+Macはなんでもカドを丸めようとする
+最大化とか最小化とかのデフォ配置・縦横比が違う >>952
いまどきはdirよりはJupyter使ってライブラリの使い方調べた方が良くない? Python環境のデバッグで何でdir なのかさっぱりわからない。
何を言いたいの? どんなふうに使ったらデバッグできるというの? >>956
初めにdirと書いたものじゃないし、デバッグとはちょっと違うとは思うけど、
ライブラリの使い方を調べるのに、
リファレンス読んでどんなメソッドがあるか解読するより、
戻ってきたオブジェクトをdirしてみた方が速いケースはよくある。
自分も書き始めのころはpythonのreplでdirしまくってた。 親に言われてプログラミングスクールに入ったら平方根?とか覚えさせられるんだけど大丈夫?
やたら数学っぽい授業やるんだけど必要なくね? ぽいじゃなくて数学
コンピューター = 計算機
プログラムってのは計算機にどういう計算をするか書いたもの
文字列やファイル操作とかなら直接数字を弄ることは少ないけれど
プログラミングを学ぶなら数学は付いて回ると思っていい >>958
平方根に?つけるということは、小学生か中学生くらい?
プログラミングをしたいなら学校の数学と英語はちゃんとやっておいた方がいいぞ。 >>958
math.sqrt()的な話なら必要ない
数学的思考は必要だが数学そのものはプログラミングを学ぶには不要
O(log n)的な話なら必要
基礎として理解しておくとよい >>952
デバッガやREPLの使い方は
リファレンスの調べ方、エラーの見方と合わせて最初に身につけるべき三大重要スキル
printと違ってステップ実行することでプログラムの動きを視覚的につかみやすくなる 俺みたいに数学できないと、数学的知識や発想を使ったプログラムになると皆目わからない。
プログラミングが得意な人は基本数学も得意でしょ。 プログラミング覚えたところで英語数学できなかったらIT土方確定だけどな プログラミングスクールでやる数学なんて大したことやらないだろうし、そこまで身構える必要ないでしょ >>958
>>962
ニュートン法とかルンゲクッタやる流れだろ
知らんけど math.sqrtと三角関数ぐらいは必要だろう
地図データとか使ってて距離や角度を計算するってよくあるし
数学に苦手意識持ってると出来る仕事の範囲が狭まるってのはほんとそうだと思うよ。
数学要らない仕事がほとんどだと思うけど、
誰でも出来る、代わりが効く仕事だからSESとかで1束いくらで値段つけられちゃうし。 習う=覚えるとは違うので
世の中の半分は同じ授業を受けて1ミリも覚えてない理解できてないまま卒業してるよ 三角関数の計算問題とか苦痛でしかないけど
テスト前のJKとか普通にこなしてるしな
後で忘れるんだろうけど いや数学ならエクセルとかあるだろ
アプリを作りたいのに数学を覚えてる暇ない プログラミングそのものを学ぶために必要な知識と
プログラムを使って解決したい問題領域の理解に必要な知識は別
汎用的に関数化されてるような数学知識よりもこの2つを区別できる基本的思考力のほうが遥かに重要 Pythonに計算量の概念って要るの?
あれ競プロだけの知識かと思ってたわ >>974
pythonに限らずどんな言語だろうがプログラミングする上では意識すべきことだろ。
常識的な設計をすれば瞬間的に終わるようなものを、非効率なバカなロジックで書いて10秒待たされるようなことになれば、結果は間違っていなくても糞プログラムだよ。 補足。希にしか使わなくてその10秒が許容されるというのならそれでもいい。
ただ、高度な高速化なんてせずに普通にやれば速く動くはずのものを遅く動くようにしか書けなかったら、ダメプログラマだろう。 forを行列計算に置き換えて高速化したとしても可読性下がったら意味なくない?
競プロならどんなに読み辛くても早ければ正義だけどさ 機械学習、グラフィック、ゲーム、ロボット…
pythonがよく使われるユースケースに絞っても行列使わないとかありえないんだが >>977
for文でも速度的に問題なくてわざわざ可読性を下げるメリットがないケースは好きにfor文を使えばいい。
計算量の考慮が重要だと言うのは、何でもかんでも最速がベストという意味ではなく、速度要求と可読性その他の要件とをバランスよく考慮して適切な手法を選択するということだぞ。 ベクトルの内積求めるときに
わざわざ対角行列使ってると(たとえ0掛けてても)計算量増えないか?
dot積使った方が速くね?って思う >>980
,一-、
/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < んなこたーない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. | アプリ側でこ速度改善なんてたかが知れてるから、基本可読性優先でいい >>977
数理的な素養のある人が見ればむしろ行列計算の方が可読性上がることもあるんじゃない 可読性()言う奴の半数はゴミコード書くドカタ
可読性ガー言っとけば読解力やら諸々能力低い自分が許されると思ってる >>985
ドヤ顔で誰もメンテナンスできないゴミコード量産して自分だけはスマートなコードを書いていると思ってそう 可読性と速さ、どっちを重要視したほうがいいかなんてのはどう考えてもケースバイケースで、正解なんか存在しない。
理系の研究者に弄ってもらうためのコードだったらforとかifの羅列よりも行列計算にまとめておいたほうがいいし、
かなりの疎行列を扱ってて行列計算だと全然速度出なくて困る場合は、速度アップを狙ってforループとかで書いたほうが良かったりもするし。
「アプリ側で速度向上なんてたかが知れてる」も明らかにケースに依る。
ベクトルの内積を計算するのに対角行列使う方法ってどんな方法なのか、興味あるので教えて欲しい。
たいてい行列計算って線形代数ライブラリを使って実装するし、線形代数ライブラリに
行列そのもの以外にベクトルもあって、ベクトルの内積、外積、ノルムぐらいは付いてるのが普通だし、
行列しかないライブラリでも、縦ベクトルをn行1列行列として作って、a.transpose() * bで計算するのがよくあるやり方じゃない? >>989
いや、それはそうなんだけどさ。
解析的に解くために行列にしたようなものだったら、
実際の数値計算では行列で扱う必要もない場合もあるわけで、
計算方法、実装方法を選ぶのは目的依存だから必ずしも一つの正解はないんじゃない、ということを言いたい。
RDBのテーブル設計で、テーブルを必ずしも正規化しきった形が実装の正解ではないのと同じで。 ていうかITの世界でも今や文系が牛耳ってるわけだし理系が土方なのは不変の真理なんじゃないか? >>991
それはITという言葉を狭く捉えすぎか、理系という言葉を広く捉えすぎ。
別に理系信奉ではないんだけど、理系的アプローチでしか出来ないことってそれなりにあって、そのアプローチを出来る人材が不足しているのは恐らく間違いがない。 理系な学科を卒業したってだけで
いわゆる文系脳なヤツも相当数混ざってるからな・・・
可読性と速度でモメてるおまいら
ちょっとでも他人がわかりづらいかも?と感じたら
とりまコメントかけ
できればユニバーサル英語でかけ
おk! >>985
「可読性」に限らず
言い訳する人は行動パターンや結果が共通してるのが面白い df.loc[df['a'] == df['b'], 'flag'] = True
みたいな感じで
df['a'] == df['b']
df['c'] == df['d']
の2条件が成立したらflag=Trueとしたいです
なにかうまい方法ないでしょうか? >>996
すいません
単に&で条件つなぐだけですよね
andと&間違えてた・・・
複数言語でアプリ同時に作成するとこうなるアホ頭脳です >>985
速度と可読性のバランスの取れたコーディングができない素人の言い訳ですね このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 50日 17時間 3分 40秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。