iPythonå ããçŸåšã®ipynbãã¡ã€ã«ãææ¡ããæ¹æ³ã¯ãããŸããïŒ
ãŠãŒã¹ã±ãŒã¹ïŒIPythonå ããã·ãã¥ã¬ãŒã·ã§ã³ãããªã¬ãŒãããã ãã¹ãŠãææžåããŠããããã«ãIPythonããŒãããã¯ãçµæãã©ã«ããŒã«ã³ããŒããŸããçæ³çã«ã¯IPythonå ããã³ããŒããŸãã
ãã®åé¡ã§Webãæ€çŽ¢ãããšããã®ãããªæ©èœã«å€ãã®é¢å¿ãããããã«èŠããŸãããstackoverflowã§æ瀺ããããœãªã¥ãŒã·ã§ã³ã¯ãã¹ãŠå°ãããããŒãªããã§ããã ãããšããããã¯ãã§ã«å®è£ ãããŠããŸããïŒ
åäœããªãããã¯ïŒPythonã³ãŒããå®è¡ããJavascriptã®è¡šç€ºïŒããªããã°ãããã¯äžå¯èœã§ãã
ã«ãŒãã«ïŒãã®å Žåã¯IPythonïŒã®çç±ã¯æ¬¡ã®ãšããã§ãã
ãã ããå€éšã¹ã¯ãªãããä»ããŠããŒãããã¯ãµãŒããŒãªãã§ããŒãããã¯ãå®è¡ããåæã«ããŒãããã¯ãã³ããŒããããšãã§ããŸãã ããã¯jupyter nbconvert --execute --output-dir='results/'
ã®ç°¡åãªæ¹æ³ã§ã
ã圹ã«ç«ãŠã°å¹žãã§ãã
ãã¶ããããªãããã®åé¡ãããã«éãããšããäºå®ã¯ããã®ãããã¯ãã©ããã§åŸ¹åºçã«è°è«ãããããšã瀺ããŠããŸãã ãã®æ±ºå®ãããããç解ã§ããããã«ããã£ã¹ã«ãã·ã§ã³ãžã®ãªã³ã¯ãæããŠããã ããŸããïŒ
ããã§ãªããã°ãç§ã¯çåã«æã£ãŠããŸãïŒã«ãŒãã«ãéå§ããããšããã«ãiPythonç°å¢ãPythonå€æ°ãèšå®ã§ããªãã®ã¯ãªãã§ããïŒ ãã®å€æ°ã¯ãiPythonããŒãããã¯ã®URLãªã©ãã«ãŒãã«ãã©ã®ããã«éå§ããããã«é¢ããæ å ±ãä¿æã§ããŸãã
ããã培åºçã«è°è«ãããç¹å®ã®å Žæã¯ãããŸãããããã¯å€ãã®å Žæã«ãããŸãããããç§ã¯åã«èŠãå¥ã®æ¯å©ãåå©çšããŸãã
ããªãã¯æ¬ã®äœå®¶ã§ãã ããªãã®èªè ã¯å®æçã«äžã€ã®ããšãæãã§ããŸãã 圌ãããã£ã©ã¯ã¿ãŒãèå¥ãããšãã圌ãã¯äž»äººå ¬ã圌ããããã®ãšåãç®ã®è²ãæã£ãŠããããšãæãã§ããŸãã ã©ããã£ãŠãããããŸããïŒ ãŸããããªããã§ããªãæ¬ã®äœå®¶ãšããŠã äžäººäžäººã®çãã¯æçœã§ããã倧å€æ°ã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯ã§ããŸããã
ããªãã¯10ã®ç®ã®è²ã§10ã®ããŒãžã§ã³ãå°å·ããŠãèªè ã«éžã¶ããã«é ŒããããããŸããã ããããèªè ã¯ãããããå¿ èŠããããŸãã
IPythonã«ãŒãã«ã§ãåãã§ãã
ã«ãŒãã«ã¯äœããããå§ããããç¥ããŸããã éå§ããããã®ã¯ãenvå€æ°ãèšå®ããããšã_è©Šã¿ã_ããšãã§ããŸãããããã®ã³ã³ããã¹ãã§ã¯æå³ããªããªããããããŸããã ããŒãããã¯ãæ¥ç¶ãããŠããªãå¯èœæ§ããããŸãã éå§ããããã»ã¹ã¯Pythonã§ã¯ãªãå¯èœæ§ããããŸãã
ã³ãŒããå®è¡ããããšãå¯äžã®ç®çã§ãããã®ïŒã«ãŒãã«ïŒããããŸãã ãã¡ã€ã«ã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããå Žåãšã§ããªãå ŽåããããŸããPythonã§ããå Žåãšããã§ãªãå ŽåããããŸãã ããã³ããšã³ãã«ãã§ã«æ¥ç¶ãããŠããå ŽåãšãããŠããªãå ŽåããããŸãã 寿åœã®éã«è€æ°ã®ã¯ã©ã€ã¢ã³ãã«æ¥ç¶ãããŠããå Žåãšæ¥ç¶ãããŠããªãå ŽåããããŸãã
ãããã£ãŠããããã®å Žåããã«ãŒãã«ã«ããã¥ã¡ã³ããæ·»ä»ãããŠãããã©ãããããã³ãããäœã§ãããã«ã€ããŠæ確ãªçããåºãããšãã§ããŸãããäžè¬çãªå¿çãšãã®ååŸæ¹æ³ã¯äžæã§ãã 質åã¯æå³ããªããªãããå°ãªããšãç§ãã¡ã¯ãããèŠã€ããŠããŸããã
ãããã£ãŠãæ¬ã®èªè ãšããŠãããªãã¯éžæãè¡ããã«ãŒãã«ã«_ããªã_ãæ£ãããšæããã¡ã€ã«åãäŒããå¿ èŠããããŸãã
ããŒãããã¯ãµãŒããŒãèµ·åãããšãããã«ãªã³ã¯ãããŠãããã¡ã€ã«ã®ååãèšå®ãããŸãã ãããè¡ãã«ã¯ãäž»ã«ã³ã³ããŒãã³ããçµåããã®ã§ã¯ãªããæè¡çãªèª²é¡ããããŸãããå¯èœã§ãããšæ³å®ããŠããŸãã é ã®ãŠã£ãºãããããã€ã質åããããŸãã
nbconvertãä»ããŠããŒãããã¯ãå®è¡ããå Žåãã©ã®ãããªååãèšå®ããŸããïŒ
print()
ãããå Žåã§ãããã¡ã€ã«ã®ååãå€æŽãããå Žåã¯ã©ããªããŸããïŒäžèšã®è³ªåã®ã©ããç§ã«ãšã£ãŠæ確ãªçããæã£ãŠããŸããã ã³ãŒããŒã§ç§ãã¡ããããã¯ããããšãªãããããæ£ããè¡ãæ¹æ³ã«ã€ããŠã³ã³ã»ã³ãµã¹ãããã°ãç§ãã¡ã¯ããã«ã€ããŠèããŸãããããŠãããããã¹ãŠã®æè¡çãªå°é£ããããŸãã
ãããå°ãæ確ã«ãªãããšãé¡ã£ãŠããŸãããã®ãããªããã¯çãªããšãè©Šãããšã¯ã§ããŸããããããããã¹ãŠã®äººãæºè¶³ãããããšã¯ãã£ãã«ãªãããšãããããŸãã
ãã¿ãŸããããããã§ïŒ
!echo %cd% # under windows
!pwd # under linux/mac
å¿
èŠãªæ
å ±ãåŸãããŸãã
åå©çšããã«ã¯ã次ã®ããã«ããŸãã
myInfo01 = !echo %cd% # under windows
myInfo02 = !pwd # under linux/mac
ããã»ã¹CWDãå€æŽãããããããŒãããã¯ãä¿åãããŠããå Žæã«ãªãå Žåããããããæ©èœããŸããã
å°ãªããšããæ°ããããŒãããã¯ãµãŒããŒã§ããŒãããã¯ãéããã³ãŒããå®è¡ããŠã«ãŒãã«ãæé»çã«èµ·åãããšãipynbãã¡ã€ã«ãå«ãŸããŠãããã©ã«ããŒãpwdã«ãªãããšãä¿èšŒãããŠããŸããïŒ
ipythonããã¹ãŠã®å¥åŠãªãšããžã±ãŒã¹ãéæ³ã®ããã«åŠçã§ããªããšããçç±ã ãã§ã誰ãäºæ³ããŠããªãã£ããšæããŸããã人ã ãå®éã«æ°ã«ãããŠãã_simple_ã±ãŒã¹ïŒããŒãããã¯ãšããŒã¿ãã¡ã€ã«ãåããã®ã«æž¡ããªã©ïŒã®ãããª_simple_ã«ãŒã«ãæã€ããšãæ¢ããã¹ãã§ã¯ãããŸããåŠçãžã®ãã©ã«ãïŒ
å°ãªããšããæ°ããããŒãããã¯ãµãŒããŒã§ããŒãããã¯ãéããã³ãŒããå®è¡ããŠã«ãŒãã«ãæé»çã«èµ·åãããšãipynbãã¡ã€ã«ãå«ãŸããŠãããã©ã«ããŒãpwdã«ãªãããšãä¿èšŒãããŠããŸããïŒ
ãããã
ã«ãŒãã«ãipynbãšåããã·ã³äžã«ããããšã¯ä¿èšŒãããŠããŸããããŸããipynbãã¡ã€ã«ãååšãããååšãããäžæã§ããããŸãã¯äžæã®ãã¹ãæã£ãŠããããããã¯ãã¡ã€ã«ã§ãã/ãã¡ã€ã«ã§ãããšããä¿èšŒããããŸããã äŸïŒGoogleãã©ã€ãã§ã®ãªã¢ã«ã¿ã€ã ã³ã©ãã¬ãŒã·ã§ã³ã
ç§ã¯èªåã®è³ªåãååã«å®åŒåã§ããªãã£ããšæããŸãã 200人ã®åŠçãPythonç°å¢ãã»ããã¢ããããŸããã»ãšãã©ã®å Žåãèªåã®ã©ãããããã«anacondaãã€ã³ã¹ããŒã«ããŸãã ã³ã³ãã¥ãŒã¿ãŒã®ç·Žç¿åé¡ãããŒãããã¯ãšãã©ã«ããŒå
ã®ããŒã¿ãã¡ã€ã«ãšããŠæž¡ããŸãã 1ã€ã¯ããŒãããã¯ãpostgresDBã«ä¿åãã2ã€ã¯ããŒãããã¯ãããã©ããããããšã¯ç°ãªããã·ã³ã§ã«ãŒãã«ãå®è¡ããå ŽåããããŸãã 3人ã®åŠçãäžç·ã«Googleãã©ã€ãã§ãªã¢ã«ã¿ã€ã ã³ã©ãã¬ãŒã·ã§ã³ãèšå®ããŸãã 6人ã®çåŸã¯ãããªãããããŸã§èšåãããããããªãããèšåããªãã£ããããããªãäœãä»ã®ããšãããã§ãããã ç§ã¯äž»ã«ãæ瀺ã«åŸããèªåã®ã©ãããããïŒWindowsãOS XããŸãã¯LinuxïŒã§ãã©ã«ããŒã解åããåãã©ãããããã§ããŒãããã¯ãµãŒããŒãèµ·åããïŒããŒãããã¯ãµãŒããŒãšã¯ã¹ãããŒã©ãŒãŸãã¯ããŒãããã¯ãã¡ã€ã«ãããã«ã¯ãªãã¯ããŸãïŒãæåã®ã»ã«ãå®è¡ããŠãïŒåãã©ãããããäžã§ïŒæ°ããã«ãŒãã«ãæé»çã«éå§ããŸãã åé¡ã¯ãcwdã_ãããã®_åŠçã«å¯ŸããŠæ©èœãããã©ããã§ãã os.getcwd()
ãæ©èœããªãã£ããããçŽ15人ã®åŠçãç§ã®ãªãã£ã¹ã«æ¥ãã®ã§ããããããããšã50ã100ã«è¿ã¥ããšäºæ³ããå¿
èŠããããŸããïŒ
ç§ã¯äž»ã«ãæ瀺ã«åŸããèªåã®ã©ãããããïŒWindowsãOS XããŸãã¯LinuxïŒã§ãã©ã«ããŒã解åããåãã©ãããããã§ããŒãããã¯ãµãŒããŒãèµ·åããïŒããŒãããã¯ãµãŒããŒãšã¯ã¹ãããŒã©ãŒãŸãã¯ããŒãããã¯ãã¡ã€ã«ãããã«ã¯ãªãã¯ããŸãïŒãæåã®ã»ã«ãå®è¡ããŠãïŒåãã©ãããããäžã§ïŒæ°ããã«ãŒãã«ãæé»çã«éå§ããŸãã
ã¯ããos.cwdïŒïŒãŸãã¯c = !cwd
ã䜿çšããŠãããããã®ãŠãŒã¶ãŒã«ã¯æ©èœããŸãã ãããŠç§ã¯ããªãã®æèã§åœŒãã«ããããããã«é Œãã®ã¯è¯ãããšã ãšæããŸãã ããããããã§ã¯ãªã_äžè¬çãª_ãŠãŒã¹ã±ãŒã¹ãšããŠã ãŸãããã®ãã°ãã©ãã«ãŒã¯ããã®ã¡ãœããã®æ瀺çãªæ¿èªãšããŠæž¡ãããå¯èœæ§ãããããããã®ãã°ãã©ãã«ãŒã«èšèŒããéã«ã¯æ³šæãå¿
èŠã§ãã ãããŠãç§ãã¡ã¯äººã
ãæ·±ãèªãŸãªãããã«ããããšãç¥ã£ãŠããŸãã
ååã«å ¬å¹³ã§ããæ£ç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ã«é¢å¿ããå¯ãããã ãããããšãããããŸãã
ã¹ã¯ãªãããããã¯ã§åããŠå®è¡ãããã¹ã¯ãªãããå€æŽããåã¯ã os.cwd()
ãããŒãããã¯ãã£ã¬ã¯ããªã§ãã
ã ããç§ãç§ã®ã³ãŒãã§ãã䜿ãã®ã¯
if not 'workbookDir' in globals():
workbookDir = os.getcwd()
print('workbookDir: ' + workbookDir)
os.chdir(workbookDir) # If you changed the current working dir, this will take you back to the workbook dir.
ã©ããããããã®ãŠãŒã¶ãŒã®ã»ãšãã©ã¯ãç¹å®ã®å±éã§å®éã«æå³ãããã®ãäœã§ããããããŒãããã¯ã®ãã¹ãã«å®éã«ã¢ã¯ã»ã¹ããã®ã§ã¯ãªãããã®ããŒãããã¯ã«é¢é£ä»ããããŠãããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããšãæãã§ããŸããå±éã®è©³çŽ°ã¯æœè±¡åãããŠããŸãã
æããã«ãé¢é£ããŒã¿ãšäžç·ã«ããŒãããã¯ãé åžããããšã¯ãäžè¬çã§å¹ åºããŠãŒã¹ã±ãŒã¹ã§ãã ã«ãŒãã«å ãããªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããã®æœè±¡çãªã¡ã«ããºã ãå¿ èŠãªã®ãããããŸããã ãã®å ŽåãããããããŒãããã¯ããã®ã¡ã¿ããŒã¿ã®å©ããåããŠããã®ãªãœãŒã¹ã¢ã¯ã»ã¹APIãé©åã«ã»ããã¢ããããã®ã¯ãå±éïŒã€ãŸããããŒãããã¯ãµãŒããŒã®ã€ã³ã¹ããŒã«ïŒã®è²¬ä»»ã«ãªããŸããïŒ æ¬¡ã«ãããŒã«ã«ããŒãããã¯ãµãŒããŒã¯ãããã©ã«ãã§ãããŒãããã¯ã«çžå¯Ÿçãªãã¹ãããããã®ãªãœãŒã¹ãå®éã«æäŸããããšãã§ããŸãã ä»ã®ãããã€ã¡ã³ãã§ã¯ãå¥åã®ã€ã³ã¿ãŒãã§ãŒã¹ïŒã¢ããããŒãã»ã¡ãœããããªãœãŒã¹ãæãURLãªã©ïŒãæäŸããããåã«ã€ã³ã¿ãŒãã§ãŒã¹ããŸã£ãããµããŒãããªãå ŽåããããŸãã
ä»ã§ã¯æé
ããããããŸããããColaboratoryãããã§ã®äœæ¥ã«åœ¹ç«ã€å¯èœæ§ãããããã§ãã
https://colab.research.google.com/notebooks/welcome.ipynb
ããŒãããã¯ã®èµ·åæã«ã°ããŒãã«ã«æ¿å ¥ãããã_dhããšããååã®å€æ°ããããŸãã ããã«é¢ããããã¥ã¡ã³ãã¯æ€çŽ¢ããŠããŸããããããã¯ããŒãããã¯ã®ãã£ã¬ã¯ããªã®ããã§ãã ããããããã¯ä»ç§ã®ããã«åããŠããŸãã
@SurealCerealã®ãœãªã¥ãŒã·ã§ã³ã«äŒŒãŠããŸãïŒ
if not 'workbookDir' in globals(): workbookDir = os.getcwd()
ç§ã¯ã€ã³ããŒãã®çŽåŸã«ããã䜿çšããŠããŸãïŒ
try: ipynb_path
except NameError: ipynb_path = os.getcwd()
ããšã©ãŒããšããèšèã«ã€ããŠã®äœããããã®äœçœ®ãååšããããåã«ãç§ã«ããèããããŸãã
ãŸãã¯ïŒ
if 'workbookDir' not in globals():
ããå°ãèªã¿ããããªããŸãã
æãåèã«ãªãã³ã¡ã³ã
ãã¿ãŸããããããã§ïŒ
å¿ èŠãªæ å ±ãåŸãããŸãã
åå©çšããã«ã¯ã次ã®ããã«ããŸãã