pyextjs

Python Extension Packages in Javascript (Numpy, Scipy)

Stats

StarsIssuesVersionUpdatedCreatedSize
pyextjs
5040.1.26 years ago6 years agoMinified + gzip package size for pyextjs in KB

Readme

PyExtJS

(Python Extension Packages in Javascript)

Contents

What is PyExtJs?

Python Extension Packages in Javascript is open-source implementation of some common libraries used in the scientific python programming.
The main goal of this project is to improve migration of python language to javascript.

License

Copyright 2016 Alvaro Fernandez

License: MIT/X11

Installation

on node.js

    $ npm install pyextjs  

    > require('pyextjs');

    > numpy.linspace(2.0,3.0,5);

on the browser

Just include the following libraries in your html.

<!doctype html>
<html>
  <head>
    <script type="text/javascript" src="../js/ss.js"></script>
    <script type="text/javascript" src="../js/Numpy.js"></script>
    <script type="text/javascript" src="../js/PolySolve.js"></script>
    <script type="text/javascript" src="../js/Scipy.js"></script>
    <script type="text/javascript">

       // Use Numpy & Scipy like python in javascript

       function ready() {
           var ls = numpy.linspace(2.0,3.0,5);
       }

    </script>
  </head>
</html>

Latest source code


The latest development version of Scipy's sources are always available at:

https://github.com/fernandezajp/PyExtJs

Bug reports


To search for bugs or report them, please use the Scipy Bug Tracker at:

https://github.com/fernandezajp/PyExtJs/issues

##Performance

This is very important, the test was executed in a MacBookPro i5

The python Code:

import time
import numpy

def test():
    x = numpy.array([0.0, 1.0, 2.0, 3.0,  4.0,  5.0])
    y = numpy.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])

    start = time.time()
    for num in range(1,10000):
        numpy.polyfit(x, y, 3)
    end = time.time()

    microsecs = end - start
    print microsecs * 1000

test()

The Javascript Code:
function test() {
    x = [0.0, 1.0, 2.0, 3.0,  4.0,  5.0];
    y = [0.0, 0.8, 0.9, 0.1, -0.8, -1.0];

    var start = +new Date();
    for (var i=0;i<10000;i++)
        numpy.polyfit(x, y, 3)
    var end =  +new Date();
    var diff = end - start;
    alert(diff);
}

test();

Python: 1604 milliseconds
Javascript: 14 milliseconds

Javascript! Very fast!!!

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.