יום חמישי, 8 באוקטובר 2015

277 Scientific Python

הפודקאסט שלנו יעסוק היום (6.10.2015) בפייתון לצורכי מחקר (Scientific Python). זה למעשה פודקאסט המשך לפודקאסט מס' 273 שעשינו בנושא ונקרא ה-R ב-R&D. מצטרפים אליי אמרי קיסוס ויואל שפירו. אימרי קיסוס, מהנדס חשמל ועוסק כעשור בתחום האלגוריתמים. עובד כיום בחברת FDNA, שמבצעת עיבוד תמונה של פנים על מנת לנסות ולזהות מחלות גנטיות נדירות בעיקר אצל ילדים.
יואל שפירא, מהנדס ביו-רפואה ובעל דוקטורט ברובוטיקה. היום אלגוריתמיקאי בחברת Check-Cap שמפתחת גלולה לאיתור סרטן במעי הגס באמצעות צילום רנטגן.

לפני שנתחיל נזכיר את קבוצת הפייסבוק שלנו, שיש בה כבר יותר מ-400 חברים. ויש לנו עדיין ספלים משובחים לחלק על הערות משובחות. כמובן שאנחנו גם בטוויטר, בבלוג וגם ב-RSS.

בפרק הקודם עסקנו בגישות השונות למחקר בצוות מחקר ופיתוח מודרני. היום אנחנו נתמקד בפייתון לצורכי מחקר.
  • בעבר הייתה הפרדה בין שלב התכנון לבין שלב הביצוע. היום העבודה היא בצמידות גבוהה יותר, ולכן כלים כמו Python מחליפים כלים כמו Matlab בצוותי מחקר ופיתוח.(3:41)
  • פייתון נוחה לשימוש לעומת כלים אחרים, אפשר להוסיף לה חבילות בקלות, והיא נוחה מאוד מבחינת המימוש. (4:57)
  • לעומת האופציות של Matlab, פייתון ו-++C, יש גם את שפת Lua שהייתה במקור למשחקים, אך למרות התמיכה של פייסבוק עדיין הקהילה שלה צעירה. עוד שפות פופולריות: R בתחום הסטטיסטי, Octave כתחליף ל-Matlab, ו-Julia שמציעה ביצועים טובים במיוחד. (7:53)
  • פייתון פותחה כתחליף ל-Perl ועם הקפדה גדולה על קריאות. לצורך מחקר אפשר למצוא ספריות כמו NumPy לחישובים, ו-MatPlotLib לגרפים. (14:19)
  • צריך להתאים את הכלי לצורך שלכם. כל כלי יתאים לחישוב של משהו "שאפשר לשרבט על דף". בשביל לבנות אבטיפוס ראשוני, יתאים כלי אחר. ובסוף יש משהו שצריך לרוץ ב-Production. פייתון מתאימה בדיוק לשלב של לעבור משלב האבטיפוס לקוד. (22:25)
  • לעומת Matlab ו-Maple שהן סביבות סגורות עם חבילות מתאימות, בפייתון יש מבחר גדול של חבילות, אבל לפעמים זה גם יכול ליצור קושי בשל עודף בחירה. (25:30)
  • יש תזוזה לכיוון שימוש בפייתון בשנים האחרונות, גם בחברות גם באקדמיה. בעיקר בזכות פתרונות של הקהילה, וגם כלים לאינטגרציה עם Matlab בקלות. (31:30)
עוד קישורים מעניינים:
  •  פייתון מול Matlab – היתרונות של פייתון כסביבת קוד פתוח.
  • פייתון למתחילים – פוסט שמרכז את היסודות של Data Science בפייתון למי שעושה צעדים ראשונים בתחום.
  • Wakari – כלי בענן שמאפשר ניתוח מידע בפייתון במהירות, חוסך התקנה של חבילות והגדרות.
  • מפתחים מול חוקרים – פוסט של ג'ון קוק שמסביר על הבדלי הגישה של חוקרים לעומת מפתחים.
  • IPython – סביבת עבודה פופולרית שמשלבת קוד, מודלים חישוביים וגרפים.
  • Google DeepDream – הקוד של המודל מאחורי DeepDream של גוגל. דוגמא יפה לשימוש ב-IPython.
  • למה נאסא משתמשת בפייתון – מצגת קצרה שמציגה פרויקט של ניתוח מידע מחיישנים בלוויינים באמצעות כלים מבוססי פייתון.
  • הפופולריות של פייתון – דירוג השפות הפופולריות שמצביע על צמיחה בשימוש בשפה. וגם דירוג TIOBE שגם מצביע על צמיחה קבועה. ודירוג נוסף.
  • איך יודעים איך שפה הופכת לפופולרית – פוסט שמנתח את המידע שנדרש כדי להחליט איך שפה הופכת לפופולרית.
  • פייתון 2 או 3 – פוסט שסוקר את ההבדלים והיתרונות של כל גרסה.
  • Anaconda – סביבת ניתוח בפייתון שכוללת יותר מ-330 חבילות הרחבה שונות, וסביבה אחידה שמתעדכנת באופן שוטף.
  • NumPy – חבילה בסיסית לפייתון שכוללת כלי חישוב וניתוח מידע.
  • Matplotlib – חבילת לפייתון שכוללת כלים ליצירת גרפיים דו-מימדיים.
  • Scikit-image – חבילה לעיבוד תמונה בפייתון.
  • Scikit-learn – חבילת ל-Machine Learning בפייתון.
  • Pandas – חבילת פופולרית נוספת לניתוח מידע.
  • Theano – חבילה מתקדמת לניתוח מידע.
  • IDE לפייתון – כידוע מפתחים אמיתיים לא משתמשים ב-IDE, אבל בכל זאת כדאי להכיר את PyCharm ו-Spyder המצוינים.

תודה לרועי שלומי על התקציר של הפרק. והקובץ נמצא כאן, האזנה נעימה.

אין תגובות:

הוסף רשומת תגובה