くだすれPython(超初心者用) その23
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/05/19(月) 15:00:17.89ID:C9xN4CIoもしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その22
http://toro.2ch.net/test/read.cgi/tech/1394240091/
関連スレ
Pythonのお勉強 Part49
http://toro.2ch.net/test/read.cgi/tech/1387528488/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
◆まとめwiki
ttp://python.rdy.jp/
0452デフォルトの名無しさん
2014/07/02(水) 22:04:56.18ID:WiLYs/5Eのんきにエディタ任せにしてたら元のからずれたのに気づかないで後でものすごく苦労した経験から
インデントの変更にはヒステリックなくらい神経を使うわ
0453デフォルトの名無しさん
2014/07/02(水) 22:08:40.84ID:p1Ns+WLPエディタが糞かお前が糞
0454デフォルトの名無しさん
2014/07/03(木) 00:17:11.19ID:Q4dDnky3誰も真似したくなかったって事
つまりそういう事
0455デフォルトの名無しさん
2014/07/03(木) 00:42:12.92ID:LiPjrIzDHaskell
0456デフォルトの名無しさん
2014/07/03(木) 03:43:57.76ID:+vZz5xXF糞と言われましてもねえ。
運用現場のPCには、メモ帳しか入っていないことも
ザラにあるわけでして。
0457デフォルトの名無しさん
2014/07/03(木) 04:01:11.77ID:PLl7RO9Aインデントブロックもゆとりエディタがあれば大丈夫だと思うけどね
0458デフォルトの名無しさん
2014/07/03(木) 04:02:54.20ID:AmVX2ePLメモ帳なら括弧の閉じ確認とかも出来ないじゃん・・・
0459デフォルトの名無しさん
2014/07/03(木) 07:23:28.59ID:7iy3DhQQへぇ、クソですね
甘んじてるお前も疑問に思わないお前もクソですね
0460デフォルトの名無しさん
2014/07/03(木) 07:27:01.67ID:7iy3DhQQそのまま便所に流されてろクソカス
0461デフォルトの名無しさん
2014/07/03(木) 07:36:20.10ID:YkXBTzVG0462デフォルトの名無しさん
2014/07/03(木) 07:37:07.13ID:Q4dDnky3それはひどいなー
0463デフォルトの名無しさん
2014/07/03(木) 11:51:55.92ID:IhsHyelsa,b,c,d,e = (0,) * 5
0464デフォルトの名無しさん
2014/07/03(木) 19:02:29.99ID:+vZz5xXF>>447からの流れで、インデント強制には欠点もあるっていう話をしているだけ。
道具である以上、欠点も理解しておかなきゃでしょ。
0465デフォルトの名無しさん
2014/07/03(木) 19:18:19.90ID:ri2L4jyE0466デフォルトの名無しさん
2014/07/03(木) 19:20:56.46ID:sK+a5gWD0467デフォルトの名無しさん
2014/07/03(木) 20:20:52.83ID:YkXBTzVG整形に関してはブロック形式だってエディタの補助がないと困るし
インデントを際限なく深くするのはただのバカ
0468デフォルトの名無しさん
2014/07/03(木) 21:34:37.29ID:On3DpZgr多次元配列(リスト)から重複要素を削除する場合についてご指南ください
x = [1,2,3,4,5,2,3,4,5,6]
y = [2,2,3,3,4,2,2,3,3,4]
f = [x,y]
このようなリストがある場合に、f[5,5]=(2.2),f[7,7]=(4,3)を削除し
f' = [[1,2,3,4,5,3,5,6],[2,2,3,3,4,2,3,4]]
x = [1,2,3,4,5,3,5,6]
y = [2,2,3,3,4,2,3,4]
としたい場合にどう書けばよいのか、頭を悩ませています
(本来は要素数が膨大なので人海戦術は難しいです)
0469デフォルトの名無しさん
2014/07/03(木) 21:50:58.43ID:beuPiWz30470デフォルトの名無しさん
2014/07/03(木) 22:04:12.98ID:PLl7RO9Aメリットとしては
}
}
}
}
}
}
みたいな無駄を省ける
0471デフォルトの名無しさん
2014/07/03(木) 22:04:56.21ID:ixw8iv2n0472デフォルトの名無しさん
2014/07/03(木) 22:45:08.65ID:zN7BdSkx俺なら(x, y)をtupleで保持してset使う
http://ideone.com/xmBCJs
リストから要素を削除していくのは要素数が膨大だと計算量的に微妙な印象
0473デフォルトの名無しさん
2014/07/03(木) 23:23:08.92ID:sK+a5gWD並びが変化してもいいなら
s = {(xx, yy) for xx, yy in zip(x, y)}
x[:] = [xy[0] for xy in s]
y[:] = [xy[1] for xy in s]
並びを維持するなら
import collections
d = collections.OrderedDict(zip(zip(x, y), x))
x[:] = [xy[0] for xy in d.keys()]
y[:] = [xy[1] for xy in d.keys()]
0474デフォルトの名無しさん
2014/07/04(金) 02:50:58.74ID:uEWPZ1c7UNIX系のコマンドで、重複排除の基本は、sort + uniq。
uniqは連続した重複しか排除できないので、先にsortしておく
x = [1,2,3], y = [2,2,3]に、
a = [1,2,3]と、インデックスを表す列を加える
DBを使って、(a,x,y)を1レコードと考える(keyはa)
(1,1,2)(2,2,2)(3,3,3)
そしてSQLで重複を排除するか、
GroupBy x,y でレコード数が、2以上のものを取り出す
他には、x,yを連結して、x-y(1-2,2-2,3-3)のようにして、
文字列としてソートして、一つずつ調べる
ソート後の並び順を、元の順序に戻したいなら、
インデックスを表す列を加えておけばよい
0475デフォルトの名無しさん
2014/07/04(金) 03:15:43.21ID:x7kr2YWO0476デフォルトの名無しさん
2014/07/04(金) 05:18:26.68ID:IGpjTZaz0477デフォルトの名無しさん
2014/07/04(金) 06:45:11.75ID:YpaE6k7m0478デフォルトの名無しさん
2014/07/04(金) 06:52:29.64ID:YpaE6k7mjavascript3
http://peace.2ch.net/test/read.cgi/tech/1380177260/
691 デフォルトの名無しさん [sage] 2014/07/03(木) 23:37:02.87 ID:GubF7XEh Be:
2種類質問です。
1 オブジェクトを代入した変数を配列で持たせたい
var hoge = document.getElementById('foo');
var fuga = document.getElementById('bar');
var box = new Array[hoge,fuga];
.box[0].innerHTML = "ああああ";
box[1].innerHTML = "いいいい";
2idの値を変更したい
var id = element.id;
var tmp = id.toString();
if(tmp == "hoge"){
var id = id.replace("hoge","piyo");
}
両方とも実行しようとして失敗したのですが、これは仕様としてできないのでしょうか?
それともやり方が間違ってるだけなのでしょうか、お願いします
0479デフォルトの名無しさん
2014/07/04(金) 09:10:50.11ID:9zXF+YDD閉じカッコとendの連続は無様極まりないわ
どうせインデントしてないコードなんて糞なのに何が嫌なのか分からん
0480デフォルトの名無しさん
2014/07/04(金) 09:12:56.51ID:S//BcKLx});
});
});
});
});
最近の流行はこれだからな
0481デフォルトの名無しさん
2014/07/04(金) 12:37:21.53ID:x7kr2YWO0482デフォルトの名無しさん
2014/07/04(金) 13:02:15.75ID:B/jB8WAr0483デフォルトの名無しさん
2014/07/04(金) 13:47:07.38ID:azKVS+/Tそれ twitter で大量に RT されてたな
0484デフォルトの名無しさん
2014/07/04(金) 13:49:32.56ID:s7hbKy2B0485デフォルトの名無しさん
2014/07/04(金) 16:13:48.64ID:IGpjTZazができないんだど どうやればいい?
0486デフォルトの名無しさん
2014/07/04(金) 16:14:46.78ID:IGpjTZazができないんだど どうやればいい?
0487デフォルトの名無しさん
2014/07/04(金) 20:03:47.37ID:PKDod491皆様、アドバイスありがとうございます
>>473さんの案を使わせていただき、
(x,y)各点のz軸に値を与えるという操作をしたところ、
計算コストの面で「並びを維持する」方法が優位でした
0488デフォルトの名無しさん
2014/07/04(金) 20:33:25.75ID:C7WSn1cr汎用性を考えて以下の2つの関数を作り対処する方法を述べる
1. x y の各要素のペアからなる集合を作る
関数mkpair-set
mkpair( [1,2,3,1] [a,b,c a]) -> [ [1 a] [2 b] [3 c]]
2. ペアリストを 分解して2つのリストに分ける
関数div-pair
div-pair( [ [1 a] [2 b] [3 c] ]) -> [ [ 1 2 3] [a b c]]
実装例
ttp://codepad.org/uv35qyWv
0489デフォルトの名無しさん
2014/07/04(金) 23:06:43.36ID:Icy6dXRdpyramid of doomに対するQやpromiseって、素敵なネームセンスだよね
なんだか秘密結社を彷彿とさせる
0490デフォルトの名無しさん
2014/07/05(土) 00:57:44.75ID:MNkKZrbL普段は問題ないけど、>>470のいう様に他からコピペしたときとか、>>452みたいに
コードブロック単位でインデントの変更が発生したときに、普通のエディタはブロック単位での
インデントを認識しないので、のほほんとTABでインデントを変更すると破壊的結果になりうる
危険性がある。
インデントに意味がない言語ならそういう危険はない。
強いて言えばそういうこと。
どうでもいいけどPythonでも >>470 みたいになるコード書いたらインデント深すぎてコードの
視認性台無しになるでしょ。PEP8? なにそれ? 俺の大画面モニタ超見やすいわーとかいうのは
おいといて。
0491デフォルトの名無しさん
2014/07/05(土) 01:09:52.00ID:B6FPIZPP普通のエディタがそもそも何かわからん
python対応のエディタならインデントも自由自在じゃん
0492デフォルトの名無しさん
2014/07/05(土) 01:11:11.21ID:B6FPIZPP0493デフォルトの名無しさん
2014/07/05(土) 01:25:09.58ID:MNkKZrbL0494デフォルトの名無しさん
2014/07/05(土) 03:08:16.31ID:dVFK5dJqなんとかリスナーの登録みたいなのだと、名前空間やクラス名、() {} ; が入り乱れて長くなることこの上なしだからな。
Pythonも巨大なプログラム作るなら回避不可能な深さにせざるを得ない場合があるのかも知れないけど。
まぁPythonは、ループの回避や一時的に別名つけるみたいなのはやりやすいと思うけど。
0495デフォルトの名無しさん
2014/07/05(土) 03:30:21.83ID:Q8yincZ00496デフォルトの名無しさん
2014/07/05(土) 03:58:59.02ID:GG2530vf0497デフォルトの名無しさん
2014/07/05(土) 04:07:55.15ID:z+EZ0PEJインデントによるブロック認識がなぜ他の言語にも採用されないんだという
意見に対し、デメリットもあって良いことづくめではないからという意見が出て
それをPython叩きだと勘違いした一部の基地外が過剰反応しているだけ
0498デフォルトの名無しさん
2014/07/05(土) 08:14:30.61ID:MbZ2I/h/0499デフォルトの名無しさん
2014/07/05(土) 08:21:30.49ID:t0Gvg/Rsぐぐる的にはカッコあったほうがいいって結論なんだろか
0500デフォルトの名無しさん
2014/07/05(土) 14:03:10.55ID:YAxnr3gEブロック減らすのも増やすのも楽
0501デフォルトの名無しさん
2014/07/05(土) 17:05:37.78ID:ZXXpEMkc0502デフォルトの名無しさん
2014/07/05(土) 21:34:07.60ID:/6X2ZuYU使っているエディターが悪い
vimにしろ
0503デフォルトの名無しさん
2014/07/06(日) 00:26:36.12ID:jwswzul90504デフォルトの名無しさん
2014/07/06(日) 00:47:24.94ID:TeRvZ6nB可読性ならpythonとよく言われますが、endがないのに慣れない
0505デフォルトの名無しさん
2014/07/06(日) 00:51:02.64ID:jwswzul9}やendを書かない事で不必要な文字は見なくてすみますしね
0506デフォルトの名無しさん
2014/07/06(日) 00:58:53.65ID:+kNYX/Vkコードの正当性の維持がエディターの機能の有無に依存するのは言語側の欠点だってことだろ
>>504
その慣れの問題
0507デフォルトの名無しさん
2014/07/06(日) 01:01:39.63ID:Y0CDjYuf0508デフォルトの名無しさん
2014/07/06(日) 02:13:05.37ID:GM8VmgBSC# 6.0 はIDEのためにコンパイラを作り直したからな
0509デフォルトの名無しさん
2014/07/06(日) 04:28:38.43ID:2SBngSsLハイハイ欠点で結構ですからお引き取り下さい
0510デフォルトの名無しさん
2014/07/06(日) 06:43:57.52ID:4LTx3Epfインデントによるブロック制御は長短併せ持つ諸刃の剣であり、よく理解して
前向きに使いましょう、という姿勢でいればよい。
>>509みたいに短所の指摘に反発するだけでは、他人の理解は得られないし
Pythonの普及を阻害するだけ。
例えば、他の言語は閉じ記号をエディタで検索してコードブロックの範囲を機械的に
把握できるけど、Pythonは目で追うしかない。これは明らかに短所である。
しかしその短所があるゆえ、長いブロックをダラダラと重ねていくスタイルは敬遠され、
見やすく保守しやすいコードを書くようにユーザーが自然と躾けられていく。
これは長所である。
0511デフォルトの名無しさん
2014/07/06(日) 06:54:49.47ID:pBYyLByM0512デフォルトの名無しさん
2014/07/06(日) 11:07:39.76ID:C9DmaFlf> 把握できるけど、Pythonは目で追うしかない
インデント幅よめばできるんじゃない? vim-textobj-indent 的な
0513デフォルトの名無しさん
2014/07/06(日) 11:37:29.88ID:0uDVj+3b0514デフォルトの名無しさん
2014/07/06(日) 11:45:07.99ID:2SBngSsLまず俺の理解を得られていないだろう?
書きやすさの短所や長所は主観でしかないんだ
俺はpythonに魅力を感じてこのスレにいる
君は短所を普及するために活動しているのか?
0515デフォルトの名無しさん
2014/07/06(日) 12:24:38.05ID:IqnhNmsnインデントの深さを見れば機械的に把握できますよ
0516デフォルトの名無しさん
2014/07/06(日) 14:11:01.75ID:UgKQDcKg0517デフォルトの名無しさん
2014/07/06(日) 16:02:31.00ID:GM8VmgBS0518デフォルトの名無しさん
2014/07/06(日) 20:38:23.90ID:pBYyLByMまぁ書いた時点で整形済みって事なんだけどどっちがいいかは好みだね。
0519デフォルトの名無しさん
2014/07/06(日) 21:38:15.78ID:5OIsyZ4O0520デフォルトの名無しさん
2014/07/06(日) 22:16:50.34ID:C9DmaFlf僕は off-side rule 好きやけど
0521デフォルトの名無しさん
2014/07/06(日) 22:31:58.65ID:If+zHSH5ただの好みでいいのかな?
0522デフォルトの名無しさん
2014/07/06(日) 22:47:33.94ID:LFi8FWWXのように置換の際にコールバック関数を呼ぶ方法で
callbackに任意の引数を与えることはできませんか?
できなければ何か良い方法無いでしょうか。
0523デフォルトの名無しさん
2014/07/06(日) 23:02:03.15ID:6+PG4LZk何がやりたいのかわからんがlambda使うとか?
0524デフォルトの名無しさん
2014/07/06(日) 23:13:04.67ID:LFi8FWWXおーできました!lambdaって式だけでなく関数も呼べるんですね
やりたかったのはどのように置換するか書いてあるdict型データを一緒に渡したかったので
第二引数をlambda match: callback(match, dictdata)としました。
どうもありがとうございました!
0525デフォルトの名無しさん
2014/07/07(月) 00:06:00.57ID:pLbnnLHQ"""は自動生成されるドキュメントに拾われる
#は拾われない
pydoc
0526デフォルトの名無しさん
2014/07/07(月) 01:53:58.03ID:BAmZtTix欠点だからその言語がダメって話じゃないんだよな。
なので結局>>509みたいなのが、その言語を不当に卑下しちゃうんだよね。
0527デフォルトの名無しさん
2014/07/07(月) 02:56:51.01ID:jIea0F/O0528デフォルトの名無しさん
2014/07/07(月) 05:46:54.43ID:iqLntt6BC で喩えると
'''〜''' が /*〜*/
#〜 が //〜
"""〜""" も使えるので
/*〜*/ のネストに相当することも可能(めったにしないけど)
0529デフォルトの名無しさん
2014/07/07(月) 06:06:00.11ID:DflFDM63いや…3連クォートはヒアドキュメント文字列リテラルでコメントじゃないから
ドキュメントに拾われるのは最初の文字列リテラルってだけで
3連かは関係ないしコメントを拾うはずもない
0530デフォルトの名無しさん
2014/07/07(月) 07:38:27.98ID:mjj6in+Iせいぜい triple-quoted strings とか multi-line strings
0531デフォルトの名無しさん
2014/07/07(月) 08:58:44.90ID:dSawaSg/二行目
三行目'''
って感じで最初の行だけずれるのが嫌
開始行を次の行から始めると無駄な改行入るし
0532デフォルトの名無しさん
2014/07/07(月) 09:38:40.92ID:d6Ax8ZcT'''\
unko
nigai
'''
バックスラッシュが便利
0533デフォルトの名無しさん
2014/07/07(月) 10:04:16.69ID:jwg4JTAf0534デフォルトの名無しさん
2014/07/07(月) 10:11:37.01ID:dSawaSg/ありがとう
2ちゃんが役に立つときもあるんだぬ
0535525
2014/07/07(月) 22:32:20.83ID:pLbnnLHQ0536デフォルトの名無しさん
2014/07/07(月) 22:38:42.20ID:BWeUs5o20537デフォルトの名無しさん
2014/07/07(月) 23:38:04.27ID:TLdjin8K現在win7x64を使用しており、どうせならx64用のものを利用したいのですが
ライブラリはx86用のものが多いのでは無いかと思い32bitと64bitで迷っています。
0538デフォルトの名無しさん
2014/07/07(月) 23:38:57.63ID:aVaaFMZ20539デフォルトの名無しさん
2014/07/07(月) 23:46:34.14ID:TLdjin8K動くと思います
0540デフォルトの名無しさん
2014/07/07(月) 23:50:55.44ID:BWeUs5o20541デフォルトの名無しさん
2014/07/07(月) 23:54:40.98ID:Ab0wasAdactiveperlってpython動くの?
0542デフォルトの名無しさん
2014/07/07(月) 23:58:34.94ID:aVaaFMZ20543537
2014/07/08(火) 00:09:25.24ID:9FjUx/oq問題はそこではなく、64bit版を使うことで得られるメリットを知りたいです
よろしくお願いします
0544デフォルトの名無しさん
2014/07/08(火) 00:21:02.35ID:Nz16FxJyお前が満足するという最大のメリットがあるだろ。
ウジウジしてんじゃねーよ、みっともねーな。
0545デフォルトの名無しさん
2014/07/08(火) 00:22:32.10ID:EBqyrTj00546デフォルトの名無しさん
2014/07/08(火) 01:05:07.47ID:QYHPYuWv0547デフォルトの名無しさん
2014/07/08(火) 01:54:25.94ID:/pQP+S5W0548デフォルトの名無しさん
2014/07/08(火) 09:35:27.97ID:H5nql8iu問題になるとしたらメモリとサンクできないからx64のdllを呼べないとかその辺
0549デフォルトの名無しさん
2014/07/08(火) 15:35:41.59ID:yYRIMg05大体の流れは数値のうちこんであるcsvファイルを読み込んでX、Yを定義して
model = sm.OLS(Y,X)
results = model.fit()
results.summary()
これで検定したいのですが
定数項をXに加えようとしてX = sm.add_constant(X)
を実行すると
AttributeError: 'numpy.ndarray' object has no attribute 'name'
と出てきてしまいます。どうしたらよいでしょうか。
Xはcsvファイルのある一列を定義したものです。定義はきちんと出来ている
とおもいます
X = sm.add_constant(csvfilename.X,prepend=False)
↑こうもしてみたのですが
'DataFrame' object has no attribute 'X'
このようなエラーが出てきてしまいます。お願いします!!
0550549
2014/07/08(火) 15:37:41.94ID:yYRIMg050551デフォルトの名無しさん
2014/07/08(火) 19:31:35.74ID:MFJlrYQR0552549
2014/07/08(火) 19:35:55.69ID:MebIA9xXモジュールは下のものをimportしました
import pandas as pd
import numpy as np
from scipy import stats
from statsmodels.sandbox.regression.predstd import wls_prediction_std
import statsmodels.api as sm
import matplotlib.pyplot as plt
%pylab
■ このスレッドは過去ログ倉庫に格納されています