- Introduction to Python
- Getting started with Python and the IPython notebook
- Functions are first class objects
- Data science is OSEMN
- Working with text
- Preprocessing text data
- Working with structured data
- Using SQLite3
- Using HDF5
- Using numpy
- Using Pandas
- Computational problems in statistics
- Computer numbers and mathematics
- Algorithmic complexity
- Linear Algebra and Linear Systems
- Linear Algebra and Matrix Decompositions
- Change of Basis
- Optimization and Non-linear Methods
- Practical Optimizatio Routines
- Finding roots
- Optimization Primer
- Using scipy.optimize
- Gradient deescent
- Newton’s method and variants
- Constrained optimization
- Curve fitting
- Finding paraemeters for ODE models
- Optimization of graph node placement
- Optimization of standard statistical models
- Fitting ODEs with the Levenberg–Marquardt algorithm
- 1D example
- 2D example
- Algorithms for Optimization and Root Finding for Multivariate Problems
- Expectation Maximizatio (EM) Algorithm
- Monte Carlo Methods
- Resampling methods
- Resampling
- Simulations
- Setting the random seed
- Sampling with and without replacement
- Calculation of Cook’s distance
- Permutation resampling
- Design of simulation experiments
- Example: Simulations to estimate power
- Check with R
- Estimating the CDF
- Estimating the PDF
- Kernel density estimation
- Multivariate kerndel density estimation
- Markov Chain Monte Carlo (MCMC)
- Using PyMC2
- Using PyMC3
- Using PyStan
- C Crash Course
- Code Optimization
- Using C code in Python
- Using functions from various compiled languages in Python
- Julia and Python
- Converting Python Code to C for speed
- Optimization bake-off
- Writing Parallel Code
- Massively parallel programming with GPUs
- Writing CUDA in C
- Distributed computing for Big Data
- Hadoop MapReduce on AWS EMR with mrjob
- Spark on a local mahcine using 4 nodes
- Modules and Packaging
- Tour of the Jupyter (IPython3) notebook
- Polyglot programming
- What you should know and learn more about
- Wrapping R libraries with Rpy
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Recommendations for optimizing Python code
- Does a reliable fast implementiaont already exist? If so, consider using that
- Start with a numpy/python prototype - if this is fast enough, stop
- See if better use of vectoriazaiton via numpy will help
- Moving to native code:
- Most Python devleopers will use Cython as the tool of choice. Cython can also be used to access/wrap C/C++ code
- JIT compilation with numba is improving fast and may become competitive with Cython in the near future
- If the function is “minimal”, it is usually worth considering numexpr because there is almost no work to be done
- Use C/C++/Fortran if you are fluent in those languages - you have seen how to call these functions from Python
- If appropriate, consider parallelization (covered in later session)
- As you optimize your code, remmeber:
- Check that is is giving correct results!
- Profile often - it is very hard to preidct the effect of an optimizaiton in general
- Remember that your time is precious - stop when fast enough
- If getting a bigger, faster machine will sovle the problem, that is sometimes the best solution
%load_ext version_information %version_information numpy, scipy, numexpr, numba, numbapro, parakeet, cython, f2py,
Software | Version |
---|---|
Python | 2.7.9 64bit [GCC 4.2.1 (Apple Inc. build 5577)] |
IPython | 3.1.0 |
OS | Darwin 13.4.0 x86_64 i386 64bit |
numpy | 1.9.2 |
scipy | 0.15.1 |
numexpr | 2.3.1 |
numba | 0.17.0 |
numbapro | 0.17.1 |
parakeet | 0.23.2 |
cython | 0.22 |
f2py | f2py |
Thu Apr 09 09:52:28 2015 EDT |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论