くだすれPython(超初心者用) その36
■ このスレッドは過去ログ倉庫に格納されています
このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その35 http://mevius.5ch.net/test/read.cgi/tech/1496411341/ VIPQ2_EXTDAT: checked:default:1000:512:----: EXT was configured @classmethodってオブジェクトのコンストラクターみたいな使い方がほとんどなの? 最近はパイちんくんの本がたくさん出過ぎでどれ買っていいか迷うよ 初めてのパイちん、みんなのパイちん、退屈な時はパイちん、、 Deepパイちん、12歳から始めるパイちん、いきなりパイちん 沢山あるよwww 12歳からはじめる ゼロからの Pythonゲームプログラミング教室 は、割と難しいので、 Python-izm https://www.python-izm.com/ から、やった方が良いでゴザル 注意 あくまでも、個人の感想です。 visual studio 2017 python 使おうとしたんだけど ファイルうまく読み込みできない Interactiveだとうまくいくんだけど これなんか設定必要なのかな 教えてください >>484 インタラクティブはVisualStudioで開けるインタラクティブシェルのこと? ファイルの読み込みは具体的にどうやったの? >>484 ファイルうまく読み込みできないのはpythonでではなくvisual studio 2017 でだろ なら、visual studio 2017 のスレの方が良いのかもしれない >>485 具体的に説明しない・できない連中のためのスレがここ超初心者用だからな レスする奴には素晴らしい妄想力が必要とされる >>485 >>486 早速ありがと reposにある PythonApplicationフォルタにファイル突っ込んだら読み込めた とりあえず読めたがこれがスタンダードなやり方なのかな 基本絶対パスで読み込ませるのがセオリーなのかな? >>487 visual studio 2017 は使っていないから具体的なアドバイスはできないが 恐らくMSあたりがvisual studio + pythonで開発するやりかたの1からのチュートリアル を公開しているんじゃないのか。ここできくよりこんなのを探した方がよいと思う >>487 セオリーなどはない そこにファイルがあるか、ないか それだけだ Pythonはいつだって非情な仕事人なんだ >>488 >>489 ありがと visual studioのマニュアル読んでみる vsはslnかpyprojがあるディレクトリからの相対パスで読み書き出来ると思う 実行時のカレントディレクトリがどこになるかだけの話だから、実行のオプションを見れば良い Windows7にpython.orgからダウンロードしたPython3.3〜3.6の パッケージをインストールして、venvで使い分けています わけあってAnacondaを入れたいんですが、このままインストールすると 今の3.3〜3.6のPythonは使えなくなるんでしょうか? もしそうなら、共存させる方法を教えてください 質問です watchdogを使用してディレクトリ監視しようとしてますが 複数のディレクトリを一度に監視出来るでしょうか >>493 共存できるとおもうぞ うちはWin7で2.x系とAnacondaが共存している VisualStudioなら「ツール」→「オプション」でPythonEnviroment追加出来る 穴コンダを別のディレクトリにインストールすれば、公式版といつでも切り替え出来る >>494 出来るかは知らないが、googleでの検索語をwatchdog +ディレクトリとかして 気合を入れて検索して、それでお前がやろうとしていることをやっているようなことが 出てこなかったらできないと思って良いんじゃないのか >>497 結構調べましたが出てこなかったので出来ないかもしれないです >>498 フォルダ1つに対してであれば出来ましたが複数となるとそもそもどうやれば良いのかわからず質問した次第です pathさえ正しければ共存可能 良く分からなくなったらvenvにこだわらず set PATH= で全部リセットして正しい値に総入れ替え >>499 windowsならディレクトリに監視属性付けて notifyeventを自分のプログラムでcatchし続けるサービスを書くとかで桶 1 18.08 18.08 2 13.61 31.69 3 13.62 45.31 4 13.86 59.17 5 13.98 1:13.15 6 14.18 1:27.33 7 14.50 1:41.83 8 14.47 1:56.30 9 14.42 2:10.72 10 14.22 2:24.94 11 14.43 2:39.37 F 14.52 2:53.89 1 18.19 18.19 2 13.66 31.85 3 13.67 45.52 4 13.80 59.32 5 13.73 1:13.05 6 13.90 1:26.95 7 14.41 1:41.36 8 14.49 1:55.85 9 14.82 2:10.67 10 14.80 2:25.47 11 14.93 2:40.40 F 15.08 2:55.48 すいません。教えてください。 swigでC++のクラスをpythonに移植したのですが、 そのクラスのオブジェクトをdeepcopyでコピーしようとしたらpickleできないとかいうエラーになりました。 copy_regになにか関数を登録するとdeepcopyできるようになるらしいのですが、 ググってもやり方がよくわかりません。 C++のオブジェクトをdeepcopyできるようにするにはどうしたらいいでしょうか。 idleで編集してるんですがshift+tabでインデントが左に戻らずに右に進んでしまいインデントを戻せない idleの設定変えればいいと思うんですがどこ変えればいいんでしょうか ideとかエディタでホームポジションのまま→に移動できるショートカットってない?""の後とか()の後にいちいち→おすとホームポジションから手を話さなくてはならなくてめんどう ググって検索結果に出てこなければできないってことは無いでしょw 子供かよw Pythonで作ったプログラムを他の人に渡すにはわざわざ環境用意してもらわないといけないの? おもちゃのパソコンでなければPythonは入ってますよ おもちゃのパソコンでなければ、ね Windows10 Home で、WSL で、MS Store から、Ubuntu 16.04 LTS をダウンロードして、 Ruby をインストールする 最初から、Python, vim も入っている 200MB ほどダウンロードして、850MB ほどの容量。 ただし、GUI版ではなく、基本的な機能しかないけど だから、Windows10 Home でも、開発環境として、Ubuntu が使える。 ただし、サーバーのように常時実行はできない。 開発環境として使えるだけ Docker も使えない PythonはRubyとかいううんことは違ってUNIXに依存してないのでPythonでも普通に使えるよ というかWinで使ってる人が一番多い >>517 蛇使いてパイソンの事か?なんか困るん?パイソン流行ると? >>519 型を書かないことでコード量が減るから JavaやC#などのコード量のうち、10%くらいは型関連のキーワードだろう リストの演算やスライスが1文でまとめて出来ること、 pandasやmatplotlibの様な使いやすいモジュールがあること、かな C#やC++の型宣言はvarやautoで推論出来るから、昔ほど面倒ではなくなってる >>518 裾野が広がり過ぎると ゴミみたいな質問でスレが埋まる python便利です csv・xml出力の実験データのまとめとか 製品の異物確認にもopencv使えるし 使える使えないで仕事の処理量は段違い 惜しむのは40手前で出会った事 中学ぐらいでpython教えれば 高校の数学が面白くなるのになとおじさんは思いました 昔は最初にやるべき言語はPASCALって言われていたが今はPythonだな >>523 どうせおまえもゴミみたいなもんなんやから気にすんなよそんな事w >>523 お前がいる時点で底だわ 裾が広いほうがレベル上がるだろ プログラミング自体が初めてで、pythonに興味を持って始めました。 1行4列の行列がnあります。要素は全て数字で、データの抜けはありません。 [100,50,250,300] [101,20,150,150] [101,30,200,150] [102,80,100,200] ・ ・ やりたいことは、n行4列の1つの行列にまとめたいです。 ただし、条件がありまして、1列目の要素同士が等しいときは、 1列目 そのまま 上の事例ですと、101 2列目 2列目の要素の合計 20+30=50 3列目 次の式で演算 Σ(2列目*3列目)/Σ(2列目) (20*150+30*200)/(20+30)=180 4列目 そのまま 上の事例ですと、150 1列目の要素に重複がある場合、上のような演算をしながら、 行列に整理したいです。ですので、完成した行列の行は初めのn行より少なくなります。 完成形 [100,50,250,300] [101,50,180,150] [102,80,100,200] すみませんが、ご教示いただけますよう、お願いします。 >529 仕様が不明なところがあるので質問します。 1列目が同じだったら、4列目も必ず同じになるのですか? もし、そうでない場合、4列目はどうやって計算するのですか? >>530 不十分な書き方をして申し訳ありません。 今回の場合、1列目がそれぞれ等しい場合は、4列目もそれぞれ等しくなります。異なってしまうことはないという前提です。ですので、2列目、3列目で所定の演算をして、1列目の要素が等しいもの同士を集約します。 これでご理解いただけましたでしょうか。 もし何かございましたら、ご指摘ください。よろしくお願いいたします。 >>529 宿題の丸投げのような感じだな 動かなくてもよいから自分でやってみたpythonコードだせないのか いまはpythonの基礎的なことすらわからないのに>>529 のようなのを やる奴が普通なのか? 昔からいたよ ここ2~3年までPythonは日本語圏でドマイナーだったから目につかなかっただけ それまでのド素人はVBかPHPかRubyをやっていた >>532 事務系社会人です。独学なので宿題ではないです。自分用の簡単なツールを作りたいというのがきっかけです。 始めはnumpyで、行列内部で要素の演算させるつもりでしたが、うまくできませんでした。 次にpandasで、表形式でやろうとしましたが、今一わかりません。 すみません、今日の夜にでも、不完全な自分のコード提示します。 お目通しいただきご教示くださるとありがたいです。 >>524 Juliaを中学生から教えたらいい。sympy使えるし。 >>538 あれは言語というよりオーサリングツールな気がするな >>535 目的を人間っぽく書いて、その為の実現したいコード処理を記載 読み込んだデータ形式も簡易表現で構わないから、コードにコメント等で書いて。 numpyで、行列内部で要素の演算 どの様な演算なのか? 受け取るデータ形式は、どの状態なのか? 何が想定と違うのか? pandasで、表形式 どの様な表なのか? 上記と同じ コード書きや想像可能な命令後のキーワド検索は、後回し。 なんかnumpyって使いにくいのよね 全部pandasでやっちゃう 計算速度とかは知らん >531 こんな感じかな? https://ideone.com/mxwgP3 numpy panda なら、groupby?とかの集計用の関数を使うのだろうけど、 どちらも知らないので、素のpythonで書いた。 before_data = [[100,50,250,300], [101,20,150,150], [101,30,200,150], [102,80,100,200], [102,20,150,200]] hashed_data = before_data.group_by { |row| row[0] } #=> {100=>[[100, 50, 250, 300]], 101=>[[101, 20, 150, 150], [101, 30, 200, 150]], 102=>[[102, 80, 100, 200], [102, 20, 150, 200]]} # 配列の蓄積器に、結果を入れながら、処理を繰り返す result = hashed_data.each_with_object([]) do | (key, rows), ary | if rows.length >= 2 puts "rows" p rows # 配列の蓄積器に、結果を入れながら、処理を繰り返す r = rows.each_with_object([]) do | row, ary2 | if ary2.length == 0 ary2.push *row # 展開 ary2[2] = row[1] * row[2] else ary2[1] += row[1] ary2[2] = ary2[2] + row[1] * row[2] end end r[2] = r[2] / r[1].to_f ary.push r else ary.push rows.flatten end end p result Ruby で作った。結果 [[100, 50, 250, 300], [101, 50, 180.0, 150], [102, 100, 110.0, 200]] プログラミングのレポート課題としていいテーマありますか? 2週間くらいで0から理解できる内容で 機械学習とか候補に入ってるんですが2週間じゃキツイですか? >>546 1. ユーザーが入力した何らかの文字列を受け取る 2. 1. の文字列が以前までに入力されたものと同じなら、そのときの回答と同じ回答を表示する 3. そうでない場合は、回答をユーザーに入力させ、入力内容を回答としてそのまま表示する これで教師データに対しては精度100%のAIができる 2週間ならこんなもんだろ 今日からpythonを勉強し始めました ここのfibo()関数が、fibo(37)ぐらいで恐ろしく時間がかかる(10秒ぐらい)んですが、 こんなものなんでしょうか?あまりに遅すぎると思うのですが。。。 試しにcで書き直したらfibo(37)が一瞬で終わりました。 環境:Windows10上のWSL+Ubuntu上のpython3.5.2、CPU corei7 https://qiita.com/Wreulicke/items/e8f7290f6b4ff98e6142 数千万回の関数呼び出ししてるから、Pythonなら10秒くらいで正常。 100万回の単純な演算なら、1秒以内でいける。 1000万回の演算だと、かなり単純なのでも、1秒以内は厳しい、というのが相場かな。 cやc++よりは、50倍くらい遅いよ。 >>550 あーそうなんですね! pythonは科学計算ではなくテキスト処理?とか ぱっと簡単に処理を書くのに向いてそうですね ありがとうございました! 俺のPCだとフィボナッチ計算 Pythonでも0.1秒くらいで終わるけど。。。 しかも、CPU corei5のオンボロなんだけどw どういうことやw >551 科学計算するときは、numpy使うらしい。 >552 速いPC使ってるんだね。 うちのi7 では13.5秒かかった。 アルゴリズムを変えて、メモ化したり、ループに書き直したりすれば、一瞬で終わるけど。。 >>554 あ、すまん >>549 のURL見てなかった 自分で勝手に関数作ってたわw でも、URLの関数使っても3秒くらいで終わったわ >553 corei3なの? ideone.com で、pypy2.7で計算したら、0.56 secまで速くなったけど、0.1 sec には届かない。 リンク先のコードと違うので計算したのでは? >555 行き違い失礼。 速度差は、デスクトップとノートPCの違いかな? あぁ、末尾再帰とか、lazyとかね、昔はよくやったよね懐かしいわw まあ今は機械学習が全盛だし、もう末尾再帰とか、lazyとかの時代じゃないっしょw 末尾再帰はみみっちい、男らしくない考え。 そんなんだったら最初からforループ使っとけ Jupyterから実行したかどうか判定する方法ってあります? >>563 お前答えられへんだけやんけwww ちなみに、俺は知らん >>562 Jupyterを起動 print("Hello World") と入力 Hello World と表示されればJupyterはちゃんと動作してるよ >>564 知らないのはお前、俺、>>562 ぐらいだろう このスレの連中は遊園地を筆頭に人間性に大問題ある奴ばかりなために 知っているが教えない奴が圧倒的。pyスレに来る目的が基地ル、雑談するためだからな PythonやりたいならwindowsよりLinuxですか? >>567 何を作りたいかでかわってくる それがないならどっちでもいいんじゃないですかね >>568 githubでソース拾ってきて動かしたいです。 >>542 様 ご面倒をおかけしました。 ありがとうございました。 コードの中身をよく拝見させていただき、 これからpythonを勉強する励みにいたします。 ありがとうございました。 >>540 遊園地様 >>542 様が回答を示していただきましたが、下記のとおり 私のポンコツコードを示したいと存じます。 再掲 [100,50,250,300] [101,20,150,150] [101,30,200,150] [102,80,100,200] ・ ・ 目的 ・ 1列目:商品コード、2列目:数量、3列目:仕入金額(単価)、1列目:販売金額(単価)です。 上記例では、数字を単純化しています。また実際は、重複含め100以上のデータ(行)があります。 ・ 重複している商品コードを整理し、その場合、数量の合算、金額(単価)の加重平均を行い、 最終的に、きれいな行列に整理したい。 ・ データはCSVで与えられている。 ・ Excel上で計算やVBAも使用できるだろうが、CSVのデータを取込み、pythonの中?で計算して、結果を出してみたかった。 以下、連投します。すみません。 #coding: UTF-8 import pandas as pd import numpy as np nan = float("nan") #データ読込 data = np.loadtxt('data.csv',delimiter=',',dtype='float',skiprows=0) #データ全体を読込 data_code = data[:,0] #データ全体から「商品コード」部分を取出す df1 = pd.DataFrame( {'CD': data[:,0], 'quantity':data[:,1], '@': data[:,2]}, columns=['CD', 'quantity', '@']) print(df1) # とりあえず、表みたいな形式になるか確認してみた data_code = np.array(data_code.reshape(len(data_code),)) # 商品コードの重複を削除してみた print(data_code) # ここから重複のない純粋な商品コードをkeyにして、そもそものデータ全体を対象に、上から回して行って、 Excelのvlookup関数のような感じで、2列目、3列目の数字を取出し、目的の演算を行おうとしていた。 質問では、1行4列の行列が、nあるとしましたが、本当はCSV全体で1つの行列になると思いましたので、 numpyを使って、重複を発見したときに、i行2列、同3列の数値を取出し、目的の演算をしようと初め思っていました。 しかし、行列の内部での要素の取出しが今一つわかりませんでした。(初心者用の本しか持っておらず、ネット頼りでしたが 必要な情報を見つけられませんでした。 それで、表形式になるpandasのDataframeを用いてみましたが、重複除きの商品コードから、 当該の行データを取出し、同様に2列目、3列目の数値を用いて演算させるのがわかりませんでした。 かなり自分でも能力が足りないのに、欲張っていたかと思います。 反省いたします。 機械学習に興味関心がありますので、今後、pythonの勉強を頑張りたいです。 ご迷惑でなければ、また皆様にご教示いただきたいです。 行列の大きさ次第では計算量がすごいことなるで メモリとか時間を気にせんのと、初心者っぽくやるなら、numpyのuniqueをまず使ってループ回すかな >>571 最初からその説明(具体的な処理目的説明)していたら展開が違ったような気がする 俺なら 重複している商品コードを整理し 全データ(100以上のデータ)で重複している商品コードを洗い出す処理をして {101:[20,150,150], [30,200,150]} <= valueが2個以上なら重複とわかる とかを生成して、 これ(商品コード101)に対して数量の合算、金額(単価)の加重平均を行うような処理にするが import numpy as np a=np.array([0,1,2,3,4,5]) b=np.array([0,1,2,3,4,6]) print(np.sum(a == b)) >>5 numpyを使って2つの配列の要素が一致している個数を求めました。 配列が2つの場合は上のコードで求まるのですが、 下の様に3つの配列がある場合、全ての配列の要素が一致する個数を求める場合はどうすればよいのでしょうか? a=np.array([0,1,2,3,4,5]) b=np.array([0,1,2,3,4,6]) c=np.array([4,1,2,3,4,5]) >>4 できるだけ、forやifなどを使わない簡単な方法を探しております。。。 よろしくお願いします。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる