PageRenderTime 46ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

Markdown | 126 lines | 68 code | 58 blank | 0 comment | 0 complexity | 0675f45386dbf3faac26fb80e3fc2368 MD5 | raw file
  1. # Brainstorming: libraries
  2. ## Scientific computation
  3. The most important libraries (at least for us) are [NumPy]( and [SciPy]( They contain the most important mathematical methods, like:
  4. * linear algebra
  5. * statistics
  6. * signal processing
  7. * optimization
  8. * Fourier Transforms
  9. * ...
  10. There are many others, specialised for specific fields. For instance [Natural Language Toolkit (NLTK)]( for linguistic tasks.
  11. And then visualization is important, of course. The most popular library is [matplotlib](
  12. ## Machine learning
  13. You can find many different ML problems here:
  14. * [Kaggle](
  15. * [UCI Machine Learning Repository](
  16. Some useful libraries containing different ML methods:
  17. * [scikit-learn](
  18. * [Modular Toolkit for Data Processing (MDP)]( It's not very actively developed anymore but we still use it a lot in our workgroup.
  19. ## (Social) network analysis
  20. There are several Python libraries for (social) network analysis like [NetworkX]( or [graph-tool]( Datasets containing networks can found for instance here:
  21. * [Stanford Large Network Dataset Collection](
  22. * [Gephi Wiki](
  23. * [Social Graphs in Movies](
  24. ## IT-Security
  25. There are crypto libraries like [cryptography]( and [PyCrypto](
  26. ## Scraping websites
  27. * []( Service that extracts data from websites
  28. * [BeautifulSoup]( Convenient access to content of a downloaded website
  29. * [Scrapy]( Framework for scraping websites
  30. * [Selenium]( Allows complete automation of a browser via script
  31. Think of data sources like concert tickets or products, movies (IMDB)...
  32. Note however, that many websites don't need to be scraped because they offer a proper API to access their content. Here are examples from a [long list]( with some of the most popular web APIs:
  33. * Google Maps, Twitter, YouTube, Flickr, Facebook, Amazon Product Advertising, Twillo,, eBay, ...
  34. ## Web development
  35. There are Python frameworks for developing websites, i.e., organizing all the server-side logic and databases with Python. Two notable framworks are [Django]( (complex) and [WebPy]( (light-weight).
  36. # Examples
  37. ## Virtual rat hippocampus
  38. ![Place cell architecture](
  39. ![Plce cell result](
  40. That's something we are doing a lot in our workgroup. If you like to try something like this, ask Fabian!
  41. ## Google's dreaming neural networks
  42. Google realeased the Python scripts for it's famous dreaming neural networks ([deepdream]( Others have build on that, for instance [making *Fear and Loathing in Las Vegas* even more uncanny](
  43. ![Fear and Loathing example](
  44. Here's another project that created a simple user interface: [bat-country](
  45. ## WhatsApp chat bots
  46. Someone wrote [yowsup](, an Python wrapper for the (unoffcial) WhatsApp API. People used this for instance to write chat bots ([yowlayer-cleverbot](, [WAbot]( for WhatsApp.
  47. ## Automating Tinder with Eigenfaces
  48. Someone wrote a (Java) script to automatically find matches for him/her using Eigenfaces: [tinderbox](
  49. ![two eigenfaces](
  50. ## Cheap ticket notification
  51. A nice example for scraping websites that don't have an API: [LTUR-Notifer]( scrapes information from []( and sends email or push notification to a smartphone when a new cheap ticket appears.
  52. ## Packet sniffing and injection
  53. Also people seem to use Python scripts for [packet sniffing and injection](, for instance.
  54. ## Implementing Machine learning algorithms on your own
  55. Basically all you need is numpy and the corresponding math.
  56. Examples: Feed Forward Neural Networks, Auto encoders, Sparse Coding, Baysian Networks, Restricted Boltzmann machines, ...
  57. ## Solving a machine learning problem
  58. Using existing libs like scikit the focus would be on solving a particular task in a good way.
  59. So it would be problem driven and you should have a concrete idea about the problem
  60. Have a look at for examples for clustering, resgression, classification, ...
  61. Examples: Object detection (Eye, hand, ...), Spam detection, ...
  62. ## Raspberry Pi
  63. Another place to turn your Python skills into fun and usefull projects it the [Raspberry Pi]( Some random projects include
  64. * [High-altitude photography](,
  65. * [Crypto currency trackers](,
  66. * [Dirty dish detectors](, and
  67. * [Pirate Radios](
  68. You can find many more projects for inspiration on [Make]( and [Instructables](