Python Extension Packages in Javascript (Numpy, Scipy)


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



(Python Extension Packages in Javascript)


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.


Copyright 2016 Alvaro Fernandez

License: MIT/X11


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


Latest source code

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

Bug reports

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


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


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;


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