2016-12-27 5 views
4

셀 마술에서 결과를 저장하는 방법을 알아낼 수 없습니다 - %%timeit? 내가 읽은 :%% timeit cell magic의 결과를 저장하는 방법은 무엇입니까?

  1. Can you capture the output of ipython's magic methods?
  2. Capture the result of an IPython magic function

만 라인 마술에 대한이 질문에 답변한다. 라인 모드에서 (%)이이 작동 :

In[2]: res = %%timeit -o 
     A = np.mat('1 2 3; 7 4 9; 5 6 1') 
     np.linalg.inv(A) 

그것은 단순히 셀, 아니 마법을 실행합니다

In[1]: res = %timeit -o np.linalg.inv(A) 

그러나 세포 모드가되지 않습니다 (%%) 에서

. 그것은 버그입니까, 아니면 제가 잘못하고있는 것입니까?

+0

IPython 5.1.0을 사용하고 있습니다. – godaygo

+1

관련 질문을 참조 할뿐만 아니라 관련성을 요약하여 주셔서 감사합니다. 질문이있을 때 얼마나 많은 사람들이 반사 신경에 내장되어 있지 않은지 당신은 놀랄 것입니다 (또는 아닙니다). –

답변

5

당신은 %%timeit -o 전지 후 _ 변수 (저장 마지막 결과를) 사용하고 일부 재사용 가능한 변수에 할당 할 수 있습니다

In[2]: %%timeit -o 
     A = np.mat('1 2 3; 7 4 9; 5 6 1') 
     np.linalg.inv(A) 
Out[2]: blabla 
     <TimeitResult : 1 loop, best of 3: 588 µs per loop> 

In[3]: res = _ 

In[4]: res 
Out[4]: <TimeitResult : 1 loop, best of 3: 588 µs per loop> 

내가 그것을 버그 생각하지 않습니다 세포 모드 명령 때문에 이 셀의 첫 번째 명령이어야하므로 아무 것도 넣을 수 없습니다 (심지어 res = ...).

_ 변수에 None이 포함되어 있으므로 그렇지 않으면 여전히 -o이 필요합니다.

+0

그리고 그'res'는'res '로 볼 수있는 많은 속성을 가지고 있습니다. '또는'vars (res)'입니다. – hpaulj