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 details)

Uploaded Source

File details

Details for the file nlib-0.3.tar.gz.

File metadata

  • Download URL: nlib-0.3.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nlib-0.3.tar.gz
Algorithm Hash digest
SHA256 5a8ad4025c885eeec6178308c73dfdc9261de45360a9a74837d4d087f67fb19d
MD5 be5b795046c076ed846877d414666963
BLAKE2b-256 703825c08ec0488fa7a6ef32fe5f88b6d87140afd566bf0bafcf82849575b6c0

See more details on using hashes here.

Supported by

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