[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/14 22:07 / Filesize : 221 KB / Number-of Response : 1031
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part51



1 名前:デフォルトの名無しさん [2015/10/01(木) 20:48:23.20 ID:zy2bldTw.net]
Pythonオフィシャルサイト
www.python.org/

日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
www.python.jp/

Pythonのお勉強 Part50
peace.2ch.net/test/read.cgi/tech/1413474092/

655 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:03:42.94 ID:1rBZ35En.net]
>>637
カスは死んでろ

656 名前:636 mailto:sage [2016/09/19(月) 13:05:17.64 ID:1rBZ35En.net]
人の指摘で相撲取ってる二番煎じ野郎がイキってんじゃねえ

657 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:11:41.62 ID:feQKjrRG.net]
>>636の指摘ってこの見当違いのアホなやつ? 
  ↓ ↓ ↓
>複数の変数に同一インスタンスが格納されていると見分けがつかないので役に立たないよ

見分けがつくって分かるようにlとaの変数にいれて見せてんだろバァァアアアアカッwww
よく見ろよド低能がwww 見分けついてんだろ、バカにも分かるように2つの変数にいれて見せてんだろww
どこまで行ってもバカはバカだよなーww アホのくせにイキってんじゃねーよww

658 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:37:08.57 ID:FeZCS4mr.net]
lとaを区別したいのなら
stacktraceで作れるかも

659 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:03:53.72 ID:EKbXrxRJ.net]
pandasで、カラム名じゃなくて「○行目に△(文字列)を含む列を取得」ってどう書きますか?

660 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:21:57.01 ID:fi9udpIp.net]
できたわ

class L(list):
def xxx(self):
g = globals()
for n in g:
if id(self) == id(g[n]):
s = traceback.extract_stack()[0][-1]
if s.endswith('%s.xxx()' % n): print n

a = L()
b = a
c = L()
a.xxx()
b.xxx()
c.xxx()

661 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 14:25:11.52 ID:fi9udpIp.net]
s = traceback.extract_stack()[-2][-1]
こっちの方がいいかな

662 名前:デフォルトの名無しさん [2016/09/19(月) 18:46:49.45 ID:G/zBuN33.net]
bs4使うと毎回文字化けするんだけど
2.7じゃダメなの?

663 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 20:09:36.22 ID:VSz4tOEQ.net]
automate borering staffs with python の日本語版出るんだな 待ってたんだよ
さすがオライリー pythonで数学入門も面白かったし



664 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 21:20:05.96 ID:VKZI37pg.net]
from re import sub as 置換
表示 = print
表示(置換("[0-9]", "x", "Python 3.5.2"))

665 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 22:30:43.62 ID:Bla+oVr/.net]
PyConJPやってたらしいっすよ

あ…(まだ)やってたんだ…って感じだけど

666 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 17:57:03.46 ID:RR1eK3bZ.net]
ifとかfor文を1行に纏めるのってマズイですか?
if xxx: returnとか、コメント化が楽なので
ついやってしまうのですが、やはり醜いですか?

667 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 18:12:19.75 ID:MIaIeT8n.net]
>>649
あなたがコーディングルールを強制される立場にあるならそれに従え
そうでなければ好きにしろ

PEP8によれば「やらないほうがいい」であり「やってはいけない」ではない []
[ここ壊れてます]

669 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 18:15:58.70 ID:rAdXsmVI.net]
Python的ではないので良くないな
Pythonはソースのフォーマットについてはあまりプログラマの主観を入れずに機械的にルールに従って書くのが良いとされる
コメント化の意味がわからないがまさか全ての行にコメント書いてるのか?

670 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 18:19:17.93 ID:MIaIeT8n.net]
素直に考えればifをコメントアウトすることを指しているだろう

671 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 21:53:59.29 ID:yd5cLCb2.net]
デバックコードとかで最終的になくなる部分なら好きにやればいい
完成したソースに残る部分ならこの先そのソースを読む相手による
コメントアウトしたまま放置するのはいろいろな意味で醜いと思う

672 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 23:41:07.30 ID:RR1eK3bZ.net]
ありがとうございます

673 名前:デフォルトの名無しさん mailto:sage [2016/10/03(月) 21:47:51.48 ID:7yGPaGm8.net]
django本は無いんけ?
Webアプリ系は大抵Railsなんねー



674 名前:デフォルトの名無しさん [2016/10/03(月) 23:22:41.06 ID:ASQ8vdH1.net]
>>655
中国では人気みたいだよ?
https://www.google.co.jp/trends/explore?q=python%20django,ruby%20on%20rails,python%20flask

675 名前:デフォルトの名無しさん [2016/10/04(火) 14:34:56.59 ID:ZPmHgmj0.net]
ruby/railsは何に喰われて落としてるんだ

676 名前:デフォルトの名無しさん [2016/10/05(水) 23:24:34.45 ID:eAuixWC+.net]
おまいら最もよくimport するモジュールなに?

677 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 01:14:24.77 ID:wSbHvTIy.net]
>>658
競技プログラム用に使う。
math
itertools
fractions

自分用の観測データ処理ツールに使う。
sys
csv

678 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 06:08:54.30 ID:vuhBxoKM.net]
dictのkeyのenumが使われてるんだけど
こういう場合ってどうやってkeyを指定するの?

679 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 06:10:14.00 ID:/ehgJ0j4.net]
スクレイピングと数値計算

numpy, pymysql, beautifulsoup4, mechanize

680 名前:デフォルトの名無しさん [2016/10/06(木) 08:50:11.44 ID:UMR0hD3K.net]
numpy,toolz

681 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 10:43:54.23 ID:j4+P2uPZ.net]
どう考えてもos

682 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 11:44:22.78 ID:xUfTV1xG.net]
reですね、正規表現は友達

683 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 12:58:26.10 ID:KvSD/i+L.net]
numpyとpandasかな。



684 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 14:07:19.33 ID:5aSogo6H.net]
pandas一択

685 名前:デフォルトの名無しさん [2016/10/06(木) 22:22:50.56 ID:g4uaa0WA.net]
みんな機械学習やってるの?

686 名前:デフォルトの名無しさん [2016/10/06(木) 23:32:10.50 ID:roCwyFi8.net]
俺に聞くなよw

687 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 08:25:31.91 ID:Cn+2xuAd.net]
それより睡眠学習の実用化が先ですよ。

688 名前:デフォルトの名無しさん mailto:sage [2016/10/08(土) 03:16:39.80 ID:W9cDd1LE.net]
import logging かな。

689 名前:デフォルトの名無しさん mailto:sage [2016/10/08(土) 08:32:02.73 ID:0rrUv0oH.net]
collectionsも結構使う

690 名前:デフォルトの名無しさん [2016/10/09(日) 15:53:16.59 ID:ClA6Ux9I.net]
すみません、
lambda f1, f2: lambda x: f2(f1(x))
的なことができる高階関数って、標準ライブラリにないんですか?
functoolsとかoperatorあたりのモジュールは探してみたんですが。

691 名前:デフォルトの名無しさん mailto:sage [2016/10/09(日) 16:01:40.12 ID:vJfQ8leN.net]
前にフィルタープログラムを書いたときに探したけど無かったよ

692 名前:デフォルトの名無しさん [2016/10/09(日) 16:27:21.72 ID:zS2VLXB8.net]
lambda f1, f2: return lambda x: return f2(f1(x))

693 名前:デフォルトの名無しさん mailto:sage [2016/10/10(月) 21:52:07.22 ID:Kmc8rJk9.net]
>>673
なるほどないんですね。
デファクトスタンダードなライブラリとかではあるんでしょうか?

>>674
returnは式じゃないからlambdaの中には書けんよw



694 名前:デフォルトの名無しさん mailto:sage [2016/10/1 ]
[ここ壊れてます]

695 名前:4(金) 10:20:22.72 ID:aU1AR1AG.net mailto: 4core CPUのパソコンでnumpyで行列計算するとCPU使用率400%までいくのに
scipyでsparse行列計算すると100%までしかいかない
[]
[ここ壊れてます]

696 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 16:38:10.29 ID:Wqp+crjm.net]
iを変数としてi行目だけ代入したい成分aを持って他の要素は全て0の配列を作るにはどうすればいいですか?

697 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 17:09:27.51 ID:tlULFick.net]
こーいうこと?
素直にあらかじめ0だけの配列作ったほうがいい気がしないでもないが。
i=5
j=10
n=[0]*(i-1)+["a"]+[0]*(j-i)

698 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 17:12:10.88 ID:tlULFick.net]
代入だからこっちか。
i=5
j=10
a="aaa"
n=[0]*(i-1)+[a]+[0]*(j-i)

699 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 17:43:07.15 ID:Qm2z0i/E.net]
[a if index + 1 == i else 0 for index, _ in enumerate(lines)]

700 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 17:54:14.00 ID:Wqp+crjm.net]
ありがとうございます

701 名前:デフォルトの名無しさん mailto:sage [2016/10/14(金) 18:44:55.05 ID:ePTb4vd+.net]
>>677

>>> import collections
>>> d = collections.defaultdict(lambda:0)
>>> d[5]='test'
>>> d[5]
'test'
>>> d[0]
0
>>> d[100]
0
>>>

702 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 12:40:18.11 ID:gqIwHOMQ.net]
>682
配列なら、len()で要素数取得とかの挙動も期待されるから、辞書を使うのはまずいかもね。
スカスカな配列を何に使うか次第だけど。

703 名前:デフォルトの名無しさん mailto:sage [2016/10/15(土) 14:25:14.15 ID:e56j1dfV.net]
>>> d={5:"aaa", 8:"bbb", 11:0}
>>> [d[idx] if idx in d else 0 for idx in range(max(d)+1)]
[0, 0, 0, 0, 0, 'aaa', 0, 0, 'bbb', 0, 0, 0]
>>>



704 名前:デフォルトの名無しさん mailto:sage [2016/10/18(火) 23:50:53.88 ID:096F2O7j.net]
初めてのpythonの最新版訳さないのかよ
いまだに2基準じゃん

705 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 04:20:18.65 ID:0bOBecXw.net]
その手の本が必要な層はphpやってますから

706 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 06:04:14.57 ID:KM21H5NN.net]
phpとpythonの関係って朝鮮人とネトウヨの関係みたいなもんですか?

707 名前:デフォルトの名無しさん mailto:sage [2016/10/19(水) 10:39:01.01 ID:PVRQWOLa.net]
>>687
ペチパーはウヨでもあり朝鮮人でもある

708 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 04:10:20.61 ID:oWSV7BZ5.net]
とパイチョン君が申しております

709 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 20:35:52.44 ID:I3+ei3yb.net]
プログラミング関連の本買う人って
プログラミング勉強するぞって買ったはいいけど
結局何も作らず終わるのがほとんどだろ

710 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 22:13:28.60 ID:nuXKaykF.net]
>>690
いつも読了できなくて挫折ばかりのキミにアドバイスしてあげよう。
勉強は気合をいれてやるもんじゃないんだよ。「勉強するぞっ」って発奮してもダメ。
それって、変なところに力いれているだけ、ヤルかヤラないかでエネルギー使ってんの。
それで疲れちゃって結局やらないの。それがキミ。

パンを食べるように本を開いて、珈琲を飲むように文字を読むのだよ。
そこに感情はない、ただやる。やる気はやっているうちに出てくると科学的に分かっているわけ。
勉強始める前に気合入れることが以下にムダで意味の無いことか分かるでしょ。

つまり、体育会系にありがちな気合とか気持ちを込めろとかいう脳みそ筋肉バカは
何やってもダメってこと。

711 名前:デフォルトの名無しさん [2016/10/22(土) 22:17:37.14 ID:NQUMZk8r.net]
>>691
結局プログラミングはしてないよねそれ

712 名前:デフォルトの名無しさん [2016/10/22(土) 22:32:55.09 ID:hG/RViKp.net]
決めたことも

713 名前:竄關汲ーられないとかそんな雑魚おらんやろ []
[ここ壊れてます]



714 名前:デフォルトの名無しさん mailto:sage [2016/10/22(土) 23:29:31.40 ID:f2PM51uT.net]
本買わずにネット情報だけでやってる奴なんているの?

715 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:11:43.04 ID:QbShixfl.net]
多言語経験してれば本家のドキュメントで事足りる。pythonは素晴らしい日本語訳ドキュメントがあるよ。
docs.python.jp/3.5/

716 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:37:41.92 ID:AOI/GfPk.net]
そこチュートリアルがプログラミング経験がある前提なのはいかがなものか
1.やる気を高めようで初心者を殺しにかかるのはやめてください

717 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:42:30.68 ID:zDynmZIN.net]
一次情報がWebにあるのに本買う方がどうかしてる

718 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 00:55:16.36 ID:QbShixfl.net]
>>696
「多言語経験してれば」って書いたんだけどなあ。そんなんだから一生初心者なんじゃない?

719 名前:デフォルトの名無しさん [2016/10/23(日) 01:20:47.60 ID:Pb3uCFNH.net]
初心者をdisる奴は初心者だけなんだって

720 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 02:07:17.14 ID:QbShixfl.net]
( ´_ゝ`) フーン

721 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 03:38:51.57 ID:2g5zTX+K.net]
小学校出てる?幼稚園でお遊戯してた方がいいんじゃない?って
国語能力をdisれば何の問題もなかった

722 名前:デフォルトの名無しさん [2016/10/23(日) 07:54:48.43 ID:04Md1WAS.net]
>>701
明らかにそういう意味だろ
お前も国語能力ないなw

723 名前:デフォルトの名無しさん [2016/10/23(日) 09:23:00.18 ID:Pb3uCFNH.net]
初心者同士の潰しあいとかやめろよ恥ずかしい



724 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:36:52.08 ID:CGzeXgZh.net]
>>690
プログラミング本って無駄に高い
しかもwebで手に入る情報の羅列みたいな本も多い
amazonで探すだけなら良いが
うっかり現物見ないで買うのは禁止

725 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:38:42.53 ID:CGzeXgZh.net]
>>691
>勉強始める前に気合入れることが以下にムダで意味の無いことか分かるでしょ。

なるほど
学生の時にその奥儀を教わりたかった

726 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:39:34.44 ID:CGzeXgZh.net]
>>694
最近は駄本が多いからネットで90%以上間に合う

727 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:40:53.29 ID:CGzeXgZh.net]
>>695
わりとマジでレスするとpython.jpはイマイチ

728 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:41:33.35 ID:CGzeXgZh.net]
>>697
もう本の時代は終わったよね

729 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 10:43:43.08 ID:JgLftgqx.net]
>>698 >>701
伊調さんの始球式みたけど
お世辞にも立派な投球には見えなかった

一芸に秀でていても球投げたことは無さそうだなと

だけど伊調さんも嫌がらずに練習すれば
すごい球を投げられるような気がする

730 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:00:28.97 ID:LgriLn9Y.net]
なんで本家のドキュメントやリファレンスをちゃんと読まないのか
英語がダメなの?

731 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 13:06:58.08 ID:LgriLn9Y.net]
書籍になってると文書としての品質は上がってる
webは書き捨てが多いから質は目も当てられない
しかし内容はそれとは別問題なのだ

732 名前:デフォルトの名無しさん mailto:sage [2016/10/23(日) 14:09:39.05 ID:5Lr/fOT4.net]
全くの初心者だとネットは情報量が多すぎるってのはあるか
とはいえ、本は3冊買って読み比べろとも言われるしな

733 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 00:27:48.51 ID:EcHWVsmq.net]
二次元のndarrayがある。例えばshape=(100,2)。
100個から適当に2個抜いて(98,2)のndarrayを作りたい。
この際、抜いた要素のひとつ前の要素は抜いた分を足して2で割った値にしたい。

いったんtolistでlistにしちゃえば実現はできるけど、速度面で不満が残る。

なんかいい方法しらない?



734 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 03:10:44.83 ID:csOVihsC.net]


735 名前:モノnumpy.zeros(shape=(98,2))で初期化行列を作って
for文でshape=(100,2)からshape=(98,2)へ要素を代入するのはどう?
[]
[ここ壊れてます]

736 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 03:32:22.12 ID:DiZc3ogb.net]
numpy.deleteとスライス使え

737 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 07:05:42.05 ID:+kcQUecP.net]
>>715
numpy.deleteって知らなかった。サンクス!

738 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 10:34:20.72 ID:9xygNeDa.net]
>>713
抜きたい要素とそのひとつ前の要素を
どちらも足して2で割った値で上書きする
(要素の数は変えない)

739 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:32:26.05 ID:+kcQUecP.net]
>>717
抜く前に値を変えてしまうのですね
使わせていただきます!

740 名前:デフォルトの名無しさん [2016/10/25(火) 02:27:29.62 ID:1QQW4i9d.net]
最近node.jsやってたけどまたPythonに戻ってきたわ
またよろしくな

741 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 21:10:07.75 ID:xoqpMCMM.net]
>>>v1.shape
(20, 10, 3)
>>>m1.shape
(3, 3)
>>>result = np.zeros(rv1.shape[:2])
>>>for i in range(rv1.shape[0]):
   for j in range(rv1.shape[1]):
      result[i, j] = np.dot(np.dot(rv1[i, j, :], m1), rv1[i, j, :])

この処理をforループを使わずに高速に書きたいんだが
なんかいい方法ある?

742 名前:デフォルトの名無しさん mailto:sage [2016/10/26(水) 02:16:55.39 ID:tP3geMHY.net]
質問です
>>> import ctypes
>>> type(ctypes.ARRAY(ctypes.c_int, 1)(9))
<class 'numpy.ctypeslib.c_long_Array_1'>
>>> type(ctypes.ARRAY(ctypes.c_int, 2)(9,8))
<class 'ctypes.c_long_Array_2'>
>>> type(ctypes.ARRAY(ctypes.c_int, 3)(9,8,7))
<class 'ctypes._endian.c_long_Array_3'>
>>> type(ctypes.ARRAY(ctypes.c_int, 4)(9,8,7,6))
<class 'ctypes.c_long_Array_4'>
>>> type(ctypes.ARRAY(ctypes.c_int, 5)(9,8,7,6,5))
<class 'ctypes.c_long_Array_5'>
>>> type(ctypes.ARRAY(ctypes.c_int, 6)(9,8,7,6,5,4))
<class 'ctypes.c_long_Array_6'>
>>> type(ctypes.ARRAY(ctypes.c_int, 7)(9,8,7,6,5,4,3))
<class 'ctypes.c_long_Array_7'>
>>> type(ctypes.ARRAY(ctypes.c_int, 8)(9,8,7,6,5,4,3,2))
<class 'ctypes.c_long_Array_8'>

なぜ1と3だけ仲間はずれなのでしょう?

743 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 13:08:21.77 ID:3lkqIeOw.net]
>>> o = object()
>>> o.x = 3
AttributeError: 'object' object has no attribute 'x'
>>> o.__dict__
AttributeError: 'object' object has no attribute '__dict__'
↑これが失敗するので下のようにすると
>>> class O(object): pass
...
>>> c = O()
>>> c.x = 3
>>> c.x
3
>>> c.__dict__
{'x': 3}
>>> c.__dict__['x']
3
で上手くいく訳ですが
object を継承しているだけなのに
なぜ __dict__ がもれなく付いてくるのでしょう?



744 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 14:08:07.00 ID:zu/Rt9+m.net]
クラスオブジェクトには__dict__がもれなくついてくるから

745 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 14:22:40.91 ID:iYpeYJtL.net]
>>722
一言で言うと、持ってないと不便だから__dict__がついてくる

objectは基底の存在なのでいじれないように設計されてるけど
普通のクラスのインスタンスは属性の書き換えができた方が便利だ
もしインスタンスの属性の書き換えを制限するクラスを作るときは__slots__を設定しよう

それから、属性を書き換え可能なオブジェクトがほしいけどクラス定義が面倒なときは
辞書で我慢するかtypes.SimpleNamespaceを使おう

746 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 14:35:54.55 ID:MDokmCKP.net]
>>723の知能レベル
 質問:空はなぜ青いのでしょうか
 回答:空は青いから

747 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 18:07:20.36 ID:3lkqIeOw.net]
object 継承してるかどうかは関係ないわ
class C(): pass でも同じだわ

748 名前:デフォルトの名無しさん mailto:sage [2016/10/28(金) 18:13:02.87 ID:Eg/XFFg9.net]
空は青色ではありませんよ?
アジュールって色なんですよ♪

749 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 17:03:46.75 ID:5dVZCGK0.net]
>>> import numpy as np
>>> from ctypes import cast, POINTER, c_double, c_char
>>> from binascii import a2b_hex, b2a_hex
>>> s = '555555555555D53F'
>>>

750 名前:cast(a2b_hex(s), POINTER(c_double))[0]
0.33333333333333331
>>> c = np.sin(np.arange(1, 3, 1))
>>> c
array([ 0.84147098, 0.90929743])
>>> cast(c.__array_interface__['data'][0], POINTER(c_double))[0]
0.8414709848078965
>>> cast(c.__array_interface__['data'][0], POINTER(c_double))[1]
0.90929742682568171
>>> cast(c.__array_interface__['data'][0], POINTER(c_char))[0:8]
'\xee\x0c\t\x8fT\xed\xea?'
>>> b2a_hex(cast(c.__array_interface__['data'][0], POINTER(c_char))[0:8])
'ee0c098f54edea3f'
>>> cast(a2b_hex('ee0c098f'), POINTER(c_double))[0]
1.185626633492288e-314
>>> cast(a2b_hex('54edea3f'), POINTER(c_double))[0]
5.2981662529804807e-315

なぜ結果が期待したものと違うのでしょう?
[]
[ここ壊れてます]

751 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 17:13:33.42 ID:g3Hziv5V.net]
間違った期待だから

>>> cast(c.__array_interface__['data'][0], POINTER(c_char))[0:16]
'\xee\x0c\t\x8fT\xed\xea?F\xb4\xd1\xea\xf6\x18\xed?'
>>> b2a_hex(cast(c.__array_interface__['data'][0], POINTER(c_char))[0:16])
'ee0c098f54edea3f46b4d1eaf618ed3f'
>>> cast(a2b_hex('ee0c098f54edea3f'), POINTER(c_double))[0]
0.8414709848078965
>>> cast(a2b_hex('46b4d1eaf618ed3f'), POINTER(c_double))[0]
0.90929742682568171

752 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 17:15:48.99 ID:V/VqPJHP.net]
あー
文字数とバイト数がごっちゃになってた
有賀d

753 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 17:24:28.60 ID:0+VZnpKl.net]
バイナリデータを変換するならstruct使おうよ



754 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 17:53:45.77 ID:5dVZCGK0.net]
いちいち定義するの面倒くね?
もっと簡単なの?

755 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 18:19:16.02 ID:0+VZnpKl.net]
>>732
Python2でしか確認してないがstructを使った書き方と比べるとこんな感じ

import struct
# 他のimportは省略
# c = ... も省略

print repr(cast(c.__array_interface__['data'][0], POINTER(c_char))[0:16])
print repr(struct.pack('dd', *c))

print repr(cast(a2b_hex('ee0c098f54edea3f'), POINTER(c_double))[0])
print repr(struct.unpack('d', a2b_hex('ee0c098f54edea3f')))






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef