1 名前:デフォルトの名無しさん [2009/04/26(日) 01:48:01 ] Pythonオフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc12.2ch.net/test/read.cgi/tech/1234716330/
49 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 12:47:03 ] それってクヌースが考えたの? gurmeetsingh.wordpress.com/2008/08/05/fast-bit-counting-routines/ の 2a) 2b) は Peter Wegner となってる
50 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 15:28:39 ] WikipediaにはKnuth's Algorithmって書いてあったけど、 本の初出が1968みたいだからPeter Wegnerのほうが先なのかな。 先にペーパー出してるかもしれないし、よく分からん。
51 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 18:35:12 ] >>46 整数型に対する右シフトは、Cだと結果が未定義だぞ。 符号無し整数型ならOKだが。
52 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 19:04:20 ] 仕様厨か?
53 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 19:57:46 ] 違う。右シフトするときにMSBがどう処理されるかの、現実的な問題だ。 gccで試したら、-2を右1ビットシフトすると-1になった。 処理系によっては、INT_MAXになるはず。 で、前者だと>>46 の通り整数型を2で割ったのと等しいが、今回の目的には使えない。 後者だと今回の目的に使えるが、整数型を2で割るのと結果が異なる。
54 名前:デフォルトの名無しさん [2009/05/06(水) 20:01:06 ] 1になってるbit数数えるのが目的の用途に符号なし整数使わず わざわざ整数型持ってくる香具師が馬鹿でFA?
55 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 20:06:04 ] いや、>>51 =>>53 は仕様厨ではなく、指摘が回りくどくて揚げ足取りになってるでFAだ。 (おれがその>>51 =>>53 本人だが)
56 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 20:58:26 ] 1ビット2ビット帰れない〜
57 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 21:41:21 ] うーん、あまりにも小さなネタ過ぎるのか、アルゴリズムの本やそれこそKnuth本を当ってもHamming Distanceの計算方法が見付からないな... 誰かKnuth本の出てる場所知ってたら教えてくれろ。
58 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 22:22:00 ] 差分をとるのはXORで明白だから、 調べるなら>>49 みたいに"bit count"のほうがいいんじゃない?
59 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 23:07:27 ] あーーーーーーがらっとるーーーーーーーーーーーーーーーー なにがったんじゃーーーーーーーーーーーーーーーーーーーーーーー
60 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 08:26:19 ] ubuntuを最近の9.04にして 何かアプリいれると勝手にpython2.6が入るぞ
61 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 08:33:11 ] 別にUbuntuじゃなくても
62 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 11:58:45 ] debianとか誰に必要とされてるんですか? osにお金も払えない貧乏ニンですよね
63 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 12:13:35 ] 貧乏人でもいいじゃない。 心が貧しくて卑しい >>62 より
64 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 16:18:22 ] 実際、フリーソフト教って怪しいよね
65 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 16:35:20 ] ソース公開されてなきゃ気持ち悪くて使えないって人とか? 使うソフトいちいちソース調べてるんか
66 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 17:07:33 ] x = [1, 2] x += [9, 8] x == [10, 10] True みたいな事ができる、メソッドか関数か計算式ってありませんか?
67 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 17:30:00 ] マッピー
68 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 17:30:07 ] map(lambda x, y: x + y, [1, 2], [9, 8])
69 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 17:35:12 ] In [3]: from operator import * In [4]: map(add, [1,2], [9,8]) Out[4]: [10, 10] もしくは In [5]: [x+y for x,y in zip([1,2], [9,8])] Out[5]: [10, 10]
70 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 19:23:41 ] >>65 何か悪いことが起きたら、ソースを読むw
71 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 20:03:57 ] import numpy x = [1, 2] x = numpy.add(x, [9, 8])
72 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 00:38:22 ] >>68-71 どれが一番速いですか? どれが一番メモリ効率良いですか?
73 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 01:17:55 ] キー・タイプ数の点で早いのは>>69 モジュールをインポートする必要がないという点で メモリ効率が良いのは>>68
74 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 02:43:36 ] >>73 >>69 のリスト内包は>>68 より効率が悪いの?
75 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 03:39:16 ] >>70 俺は直す知識が無いからパッチ書いたりとか出来ないけど ハードコーディングされてて使い難いと思ったところを ちょこちょこっと書き換えて自分ライクにしたりとかはある。
76 名前:デフォルトの名無しさん [2009/05/09(土) 05:34:00 ] zipの中身ってyieldだっけ?
77 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 05:35:49 ] 3.0
78 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 15:42:04 ] >>68-69 ,71の中では>>71 が一番処理速度は早いですよね?
79 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:35:37 ] >>78 自分で測定しろや
80 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:52:02 ] 天下のnumpy様に 標準ライブラリや組み込み関数が勝てるわけないだろう。
81 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:07:07 ] >>78 やってみたぞ。 a, bをランダムな整数10000要素のリストとして 1. map(operator.add, a, b) 2. map(lambda x,y: x+y, a, b) 3. numpy.add(a,b) を各1000回実行するのにかかった時間をtimeitモジュールを使って測定した結果は 以下のとおり。(CPU: Core2Quad Q6600, OS: Linux 2.6.28, Python: 2.6.2) 1. 0.977833986282 2. 1.91782212257 3. 0.0156099796295 ということで当然ながらnumpyの圧勝。 ただし、最初にnumpy.array()でシーケンスをnumpy.ndarrayに変換しておく必要あり。 これをやらないと逆に一番遅い。
82 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:45:19 ] >>78-80 numpyは中身がlapackかなんかじゃなかった? どっちにしても一部cで書かれてるから場合によってはnumpyが早いかもね 正直言うと全部pythonのlistのまま処理してくれないとめんどくさくて嫌なんだけどね arrayってなんだよ
83 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:10:57 ] numpyとscipyとpylabとmatplotlibの関係が良く分かんないんだけど。
84 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:28:23 ] >>> _lambda.repeat(1,100000);_operator.repeat(1,100000);_numpy.repeat(1,100000) [0.5832531788257711] [0.43510585842614091] [1.2607769981939327]
85 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:10:13 ] >>84 なにこれ
86 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 19:59:17 ] >>83 おまい使ったことないだろ。使えばすぐに分かるぞ。 おおざっぱに言うと、numpyで効率的なn次元配列及びそれらに対する 基本的な演算が与えられ、それを使ってscipyで計算をし、 結果をプロットするのがmatlabplotだ。
87 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 21:28:07 ] スクリプト系は結局こうなるよな。 アルゴリズムの知識じゃなくて、モジュールの知識。
88 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 21:32:43 ] 最近の言語はそうじゃない? 今C#やってるけど、ひたすら.NETFrameworkの使い方調べてるぞ。
89 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 21:34:30 ] >>87 ある程度ライブラリが揃っていれば、スクリプト言語かどうかに関係なく どの言語も似たようなものだろ。
90 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:05:14 ] Python 2.x ではstatementだったexec が3.0ではfunctionになりましたが、 2.xと3.0の両方で動作するように書くにはどうしたらいいでしょうか。 exec '....' in globals, locals # 2.x exec('.....', globals, locals) # 3.0 globalsとlocalsを指定しなくていいなら exec('....') でいいのですが、globalsとlocalsも指定して、なおかつ2.xと3.0の両方で動かしたいです。
91 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:20:09 ] from __future__ import exec exec('.....', globals, locals) とかすればできるのかな。 future文使ったことないから知らん。
92 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:50:52 ] pythonで動画扱いたいのですが どのライブラリがお勧めですか?
93 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:28:57 ] 速さは分かったけど メモリ効率って どうやって調べられるん?
94 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:39:10 ] topでresident sizeでも見れば?大雑把な指標にはなる。
95 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:50:22 ] resourceモジュールだっけな、もう忘れた
96 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 07:22:06 ] resourceモジュールってgetrusage()呼んでるだけだよな。 ということはtopを見れば十分という話だな。 WindowsでもProcess Explorer使えば同様にモニタリング出来るし。
97 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 07:24:00 ] MacOS XでPython3.0を使っているのですが、help()を使うとときどき UnicodeEncodeError: 'shift_jis' codec can't encode character '¥xab' in position 3701: illegal multibyte sequence というエラーがでます。 たぶんデフォルトの文字コードがshift_jisになっているせいだと思いますが、 デフォルトの文字コードをutf-8に変更するにはどうしたらいいですか。 できればLANG以外の方法で。
98 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 10:59:04 ] >¥xab \が全角だから
99 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 11:03:21 ] 円マークじゃなくて、\x5c の文字である必要があるから、環境によってはバックスラッシュかもね。
100 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 11:47:29 ] import math print math.e ** (1j * math.pi) がOKで print math.exp(1j * math.pi) がNGなんだけど expがcomplex を受け取らないのは何か理由があるの?
101 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:20:21 ] >>101 複素数用にcmathが用意されてるから。cmath.exp()を使え。
102 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 12:57:53 ] expがcomplex を受け取らないのは何か理由があるの?
103 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:03:17 ] ソース読んで自分で調べろボケ
104 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 13:54:36 ] >>103 お前初めてかここは、力抜けよ
105 名前:デフォルトの名無しさん [2009/05/10(日) 13:57:09 ] みんなのPython 改訂版 が出たと思いますが 初心者にはおすすめでしょうか? まったくの初心者です。
106 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 14:00:47 ] プログラム初心者ならみんパイ Python初心者ならはじパイって感じじゃね? amazonのレビューとかは気にすんな
107 名前:デフォルトの名無しさん [2009/05/10(日) 14:15:06 ] ありがとうございます。参考になりました。
108 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 14:26:20 ] docs.python.org/3.0/whatsnew/3.0.html >It is not recommended to try to write source code that runs unchanged under both Python 2.6 and 3.0; 訳) 2.6と3.0の両方で動くように書いたらダメってGuidoが言ってた
109 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 14:50:35 ] >>104 >>101 で答えてやったのに、補足もせずに全く同じ質問をぶつけてきたら 頭に来るだろ。
110 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 15:06:22 ] 裏でなにが行われてるか知らないとキモチワルイ! ってタイプの人なんだろう。 でもそういう人はソースくらい自分で読めないとね
111 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 15:48:31 ] どうせいつものなりすまし厨だろ。
112 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:23:14 ] おっぱいそん初心者です。 固定長データの中に16進コードで日本語の地名が入っているのですが、 それを日本語で出力するにはどうしたらいいのでしょうか。 (例えば、「東京」ならデータ中には 「93 8C 8B 9E」 とshift jisで入っています) 固定長のデータを変数に入れたとして、 b='93' c='8C' d = '\x' + b + '\x'+ c として「東」 を表示しようとしましたが、dに代入するところですでにエラーが。 どなたかお助けを…
113 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:48:07 ] とりあえず d = r'\x' + b + r'\x'+ c
114 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:59:12 ] あ、それだと駄目なのか
115 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 01:10:38 ] >>> s = ["93", "8c", "8b", "9e"] >>> print "".join(chr(int(x, 16)) for x in s) 東京
116 名前:デフォルトの名無しさん [2009/05/11(月) 03:12:10 ] >>109 >104 が答えになってないだろ
117 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 03:22:47 ] 頭に血が登ってアンカー間違えたか? くだらん言いがかりつける暇あるなら調べろよカスが
118 名前:100 mailto:sage [2009/05/11(月) 06:17:42 ] python に慣習、主義があって それにしたがってんのかと思い聞いてみたんだが この感じだとそんなんじゃ、なさそうやね。 単に処理速度の問題かな。 自分のコピペんのせいで荒れるの嫌だから 一応念のためにいうけど>>100 とこのレス以外は別人なんで、よろしく。
119 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 08:45:22 ] 2.6用 3.0用 のコードをブランチで分けて darcsで同じパッチ当てながら開発って クエン酸いれたらどうっすかなみのアイデアですか
120 名前:デフォルトの名無しさん [2009/05/11(月) 09:26:32 ] >>117 血が昇る では?
121 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:52:01 ] 2.x系と3.0とを判定するよい方法はありますか。 現在は sys.version.startswith('3') で調べていますが、もっといい方法はありますか。
122 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 00:54:26 ] >>108 >訳) 2.6と3.0の両方で動くように書いたらダメってGuidoが言ってた 原文は It is not recommended だから、ダメじゃなくて おススメしないというだけだよね。
123 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:10:46 ] >現在は sys.version.startswith('3')で それでいいんじゃないかと思うけど 適当に考えついた他の例 def is_python3_or_later(): return range(0) != list(range(0))
124 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 06:32:31 ] >>121 sys.version_info >= (3, 0, 0)じゃだめ?
125 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 14:19:30 ] ttp://www.amazon.co.jp/dp/4798118753 激しいクソ本臭がするんだが気のせいかな?
126 名前:デフォルトの名無しさん [2009/05/12(火) 16:07:35 ] 合格です おめでとう
127 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:10:09 ] ('3')が顔文字に見えてきた
128 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:33:12 ] >>125 ググってみたら、著者はzope、ploneな人たちっぽい...orz...。
129 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 16:55:34 ] >>124 sys.version_info なるものがあるのか! これは助かりました。ありがとうございます。
130 名前:デフォルトの名無しさん [2009/05/12(火) 18:06:52 ] >>125 いつのまにかこんな本も出てたんだね ttp://www.amazon.co.jp/dp/477413760X
131 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:12:57 ] >>130 それちょっと気になってる。
132 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:15:13 ] >>130 その本はひどく読みづらい日本語で書いてあったなあ あと、著者はPython分かってないと思う(w
133 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:28:37 ] 10日で〜シリーズはそういう層がターゲットだからあんまり期待してもしょうがないでしょ。 それにしてもそんな本でなんでそんなに著者が多いのか・・・
134 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:32:16 ] 束になってウンチ本を書いたんですね。ご苦労様です。
135 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:21:24 ] >>130 のは少なくとも入門書てしては失敗してると思う・・・ Python云々ではなく
136 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:21:35 ] >>115 ありがとーん。 配列なめるあたりも分かりやすいですね。 いつもどおりにawkで書いたのですが、ユーザー関数つくらないとダメでした。 真剣にぱいてん(他言語からPythonへ転向)を考えております…
137 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:57:05 ] >>130 この本は、著者タソの才能が著しく低いか、やっつけで書いたのかどっちかだとおもう。 内容については1万歩譲るとしても、書籍として成り立ってない。
138 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 00:19:34 ] DRYが説明なしにでてきた気がするんだが説明されてた? Pythonエクスプローラのときはちゃんと説明あったが
139 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 00:33:23 ] ドジャンゴってゾープと似てね? 使ってる人たちが。
140 名前:デフォルトの名無しさん [2009/05/13(水) 00:58:22 ] >>132 >>135 ありがとう Amazonのレビューにだまされるとこだったw
141 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 01:01:55 ] >>137 そういうのは編集者の方でなんとかすることは出来なかったんだろうか?
142 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 01:05:06 ] ploneってゾープと似てね? 使ってる人たちが。
143 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 03:29:28 ] てか、PloneってZopeの直系っしょ?
144 名前:デフォルトの名無しさん [2009/05/13(水) 04:04:13 ] pythonってrubyと似てね? 使ってる人たちが。
145 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 06:51:49 ] そりゃねーわ
146 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 07:50:57 ] ダンジョーはこんなもの。 それが感想。大勢で書いた割にはgdgdだったし。
147 名前:デフォルトの名無しさん [2009/05/13(水) 08:42:12 ] 勘のいい奴はみんPyを買うということか...? www.amazon.co.jp/dp/4774138053/ 23%のカスタマーが みんなのPython 改訂版を購入しています www.amazon.co.jp/dp/4873113938/ 15%のカスタマーが みんなのPython 改訂版を購入しています www.amazon.co.jp/dp/477413760X/ 12%のカスタマーが みんなのPython 改訂版を購入しています
148 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 08:57:46 ] はじめてのPythonをやってから リファレンスとか見れば良いだけのような。 はじめてのPythonやってないと 細かな罠にひっかかりまくると思うぞ。
149 名前:デフォルトの名無しさん [2009/05/13(水) 09:50:36 ] >>148 >細かな罠にひっかかりまくると思うぞ。 やっぱり勘の悪い人が買うんだ(笑)。