トップページ > プログラム > 2015年09月12日 > J6pfiWXJ

書き込み順位&時間帯一覧

18 位/167 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001100000000000103



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
くだすれPython(超初心者用) その27©2ch.net

書き込みレス一覧

くだすれPython(超初心者用) その27©2ch.net
64 :デフォルトの名無しさん[sage]:2015/09/12(土) 09:55:20.42 ID:J6pfiWXJ
>>60
>>> import numpy as np
>>> a = np.mgrid[0:4,0:5,0:6]
>>> a.shape
(3,4,5,6)
>>> b = [x for z in a for y in z for x in y]
>>> len(b)
60
>>> b[0].shape
(6,)

となりまして、望む結果は得られませんでした。
くだすれPython(超初心者用) その27©2ch.net
65 :デフォルトの名無しさん[sage]:2015/09/12(土) 10:06:26.07 ID:J6pfiWXJ
>>> b.shape
(3,4,5,6)
>>> b = [a[:,i,j,k] for i in range(a.shape[1]) for j in range(a.shape[2]) for k in range(a.shape[3]) ]

これでとりあえず望んだ結果が得られました。
これと等価な結果が得られるコードをもっとシンプルで高速に書けませんか?
くだすれPython(超初心者用) その27©2ch.net
67 :デフォルトの名無しさん[sage]:2015/09/12(土) 22:44:40.18 ID:J6pfiWXJ
>>66
実際は
b = [ myfunc(a[:,i,j,k]) for i in range(a.shape[1]) for j in range(a.shape[2]) for k in range(a.shape[3])]
という処理をやりたいんです。
次にようなループはpythonでは遅いと評判ですので、
内包表記だと速いと聞いて試したいと考えています。
for k in range(a.shape[3]):
for j in range(a.shape[2]):
for i in range(a.shape[1]):
b.append(myfunc(a[:,i,j,k]))


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。