pyextjs

Python Extension Packages in Javascript (Numpy, Scipy)

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
pyextjs
5140.1.28 years ago8 years agoMinified + gzip package size for pyextjs in KB

Readme

PyExtJS
(Python Extension Packages in Javascript)

Contents

* <a href="https://github.com/fernandezajp/PyExtJS/wiki/Array-creation-routines">Array creation routines</a>
* <a href="https://github.com/fernandezajp/PyExtJS/wiki/Array-manipulation-routines">Array manipulation routines</a>
* <a href="https://github.com/fernandezajp/PyExtJS/wiki/Mathematical-functions">Mathematical functions</a>

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!!!