- 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
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Numba
@jit(nopython=True) def numba_euclidean(vs, i, j): n = vs.shape[1] d = 0.0 for k in range(n): t = vs[i, k] - vs[j, k] d += t*t return np.sqrt(d) @jit def numba_pairwise(vs, dist): n = vs.shape[0] ds = np.empty((n, n)) for i in range(n): for j in range(n): if i == j: ds[i, j] = 0 elif i > j: ds[i, j] = ds[j, i] else: ds[i, j] = dist(vs, i, j) return ds
%timeit -n 100 py_euclidean(vs, 0, 1) %timeit -n 100 numba_euclidean(vs, 0, 1)
100 loops, best of 3: 111 µs per loop 100 loops, best of 3: 1.12 µs per loop
%timeit -n 10 py_pairwise(vs, py_euclidean) %timeit -n 10 numba_pairwise(vs, numba_euclidean)
10 loops, best of 3: 537 ms per loop 10 loops, best of 3: 6.44 ms per loop
prof = %prun -r -q numba_pairwise(vs, numba_euclidean)
prof.sort_stats('time').print_stats(10);
28 function calls in 0.014 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 1 0.014 0.014 0.014 0.014 <string>:1(<module>) 2 0.000 0.000 0.000 0.000 numpy_support.py:131(map_arrayscalar_type) 2 0.000 0.000 0.000 0.000 numpy_support.py:80(from_dtype) 2 0.000 0.000 0.000 0.000 context.py:130(resolve_data_type) 16 0.000 0.000 0.000 0.000 {isinstance} 2 0.000 0.000 0.000 0.000 dispatcher.py:178(typeof_pyval) 2 0.000 0.000 0.000 0.000 numpy_support.py:144(is_array) 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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