Skip to main content

## nlib library This is the library described and documented in this book: http://www.amazon.com/Annotated-Algorithms-Python-Applications-Physics/dp/0991160401 It is a pure python library for numerical computations. Does not require numpy. ## Usage >>> from nlib import * ## Linear algebra example >>> A = Matrix([[1,2],[4,9]]) >>> print 1/A >>> print (A+2)*A >>> B = Matrix(2,2,lambda i,j: i+j**2) ## Fitting >>> points = [(x0,y0,dy0), (x1,y1,dy1), (x2,y2,dy2), ...] >>> coefficients, chi2, fitting_function = fit_least_squares(points,POLYNOMIAL(2)) >>> for x,y,dy in points: >>> print x, y, '~', fitting_function(x) ## Solvers >>> from math import sin >>> def f(x): return sin(x)-1+x >>> x0 = solve_newton(f, 0.0, ap=0.01, rp=0.01, ns=100) >>> print 'f(%s)=%s ~ 0' % (x0, f(x0)) (ap is target absolute precision, rp is target relative precision, ns is max number of steps) ## Optimizers >>> def f(x): return (sin(x)-1+x)**2 >>> x0 = optimize_newton(f, 0.0, ap=0.01, rp=0.01, ns=100) >>> print 'f(%s)=%s ~ min f' % (x0, f(x0)) >>> print 'f'(%s)=%s ~ 0' % (x0, D(f)(x0)) ## Statistics >>> x = [random.random() for k in range(100)] >>> print 'mu =', mean(x) >>> print 'sigma =', sd(x) >>> print 'E[x] =', E(lambda x:x, x) >>> print 'E[x^2] =', E(lambda x:x**2, x) >>> print 'E[x^3] =', E(lambda x:x**3, x) >>> y = [random.random() for k in range(100)] >>> print 'corr(x,y) = ', correlation(x,y) >>> print 'cov(x,y) = ', covariance(x,y) ## Finance >>> google = YStock('GOOG') >>> current = google.current() >>> print current['price'] >>> print current['market_cap'] >>> for day in google.historical(): >>> print day['date'], day['adjusted_close'], day['log_return'] ## Persistant Storage >>> d = PersistentDictionary(path='test.sqlite') >>> d['key'] = 'value' >>> print d['key'] >>> del d['key'] d works like a drop-in preplacement for any normal Python dictionary except that the data is stored in a sqlite database in file "test.sqlite" so it is still there if you re-start the program. Kind of like the shelve module but shelve files cannot safely be accessed by multiple threads/processes unless locked and locking the entire file is not efficient. ## Neural Network >>> pat = [[[0,0], [0]], [[0,1], [1]], [[1,0], [1]], [[1,1], [0]]] >>> n = NeuralNetwork(2, 2, 1) >>> n.train(pat) >>> n.test(pat) [0, 0] -> [0.00...] [0, 1] -> [0.98...] [1, 0] -> [0.98...] [1, 1] -> [-0.00...] ## Plotting >>> data = [(x0,y0), ...] >>> Canvas(title='my plot').plot(data, color='red').save('myplot.png') nlib plotting requires matplotlib/numpy for the Canvas object only plots are chainable. methods: .plot, .hist, .errorbar, .ellipses ## Complete list of functions/classes CONSTANT CUBIC Canvas Cholesky Cluster D DD Dijkstra DisjointSets E Ellipse HAVE_MATPLOTLIB Jacobi_eigenvalues Kruskal LINEAR MCEngine MCG Markowitz MarsenneTwister Matrix NeuralNetwork POLYNOMIAL PersistentDictionary Prim PrimVertex QUADRATIC QUARTIC QuadratureIntegrator RandomSource StringIO Trader YStock bootstrap breadth_first_search compute_correlation condition_number confidence_intervals continuum_knapsack correlation covariance decode_huffman depth_first_search encode_huffman fib fit fit_least_squares gradient hessian integrate integrate_naive integrate_quadrature_naive invert_bicgstab invert_minimum_residual is_almost_symmetric is_almost_zero is_positive_definite jacobian lcs leapfrog make_maze mean memoize memoize_persistent needleman_wunsch norm optimize_bisection optimize_golden_search optimize_newton optimize_newton_multi (multi-dimentional optimizer) optimize_newton_multi_imporved optimize_secant partial random resample sd solve_bisection solve_fixed_point solve_newton solve_newton_multi (multi-dimensional solver) solve_secant variance ## License Created by Massimo Di Pierro (http://experts4solutions.com) @2016 BSDv3 License

Project description

UNKNOWN

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nlib-0.3.tar.gz (21.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page