
Research
/Security News
Contagious Interview Campaign Escalates With 67 Malicious npm Packages and New Malware Loader
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
.. image:: https://github.com/jonathf/numpoly/raw/master/docs/.static/numpoly_logo.svg :height: 200 px :width: 200 px :align: center
|circleci| |codecov| |readthedocs| |downloads| |pypi|
.. |circleci| image:: https://circleci.com/gh/jonathf/numpoly/tree/master.svg?style=shield :target: https://circleci.com/gh/jonathf/numpoly/tree/master .. |codecov| image:: https://codecov.io/gh/jonathf/numpoly/branch/master/graph/badge.svg :target: https://codecov.io/gh/jonathf/numpoly .. |readthedocs| image:: https://readthedocs.org/projects/numpoly/badge/?version=master :target: http://numpoly.readthedocs.io/en/master/?badge=master .. |downloads| image:: https://img.shields.io/pypi/dm/numpoly :target: https://pypistats.org/packages/numpoly .. |pypi| image:: https://badge.fury.io/py/numpoly.svg :target: https://badge.fury.io/py/numpoly
Numpoly is a generic library for creating, manipulating and evaluating
arrays of polynomials based on numpy.ndarray
objects.
numpy
, as the library
provides a high level of compatibility with the numpy.ndarray
, including
fancy indexing, broadcasting, numpy.dtype
, vectorized operations to name
a few.numpy
.numpy.<name>
functions using numpy
's
compatibility layer (which also exists as numpoly.<name>
equivalents)./
, %
and
divmod
.poly.exponents
, poly.coefficients
, poly.indeterminants
etc.numpoly.derivative
,
numpoly.gradient
, numpoly.hessian
etc.numpoly.decompose
.numpoly.call
.Installation should be straight forward:
.. code-block:: bash
pip install numpoly
Constructing polynomial is typically done using one of the available constructors:
.. code-block:: python
>>> import numpoly
>>> numpoly.monomial(start=0, stop=3, dimensions=2)
polynomial([1, q0, q0**2, q1, q0*q1, q1**2])
It is also possible to construct your own from symbols together with
numpy <https://python.org>
_:
.. code-block:: python
>>> import numpy
>>> q0, q1 = numpoly.variable(2)
>>> numpoly.polynomial([1, q0**2-1, q0*q1, q1**2-1])
polynomial([1, q0**2-1, q0*q1, q1**2-1])
Or in combination with numpy objects using various arithmetics:
.. code-block:: python
>>> q0**numpy.arange(4)-q1**numpy.arange(3, -1, -1)
polynomial([-q1**3+1, -q1**2+q0, q0**2-q1, q0**3-1])
The constructed polynomials can be evaluated as needed:
.. code-block:: python
>>> poly = 3*q0+2*q1+1
>>> poly(q0=q1, q1=[1, 2, 3])
polynomial([3*q1+3, 3*q1+5, 3*q1+7])
Or manipulated using various numpy functions:
.. code-block:: python
>>> numpy.reshape(q0**numpy.arange(4), (2, 2))
polynomial([[1, q0],
[q0**2, q0**3]])
>>> numpy.sum(numpoly.monomial(13)[::3])
polynomial(q0**12+q0**9+q0**6+q0**3+1)
Installation should be straight forward from pip <https://pypi.org/>
_:
.. code-block:: bash
pip install numpoly
Alternatively, to get the most current experimental version, the code can be
installed from Github <https://github.com/>
_ as follows:
First time around, download the repository:
.. code-block:: bash
git clone git@github.com:jonathf/numpoly.git
Every time, move into the repository:
.. code-block:: bash
cd numpoly/
After the first time, you want to update the branch to the most current
version of master
:
.. code-block:: bash
git checkout master
git pull
Install the latest version of numpoly
with:
.. code-block:: bash
pip install .
Installing numpoly
for development can
be done from the repository root with the command::
pip install -e .[dev]
The deployment of the code is done with Python 3.10 and dependencies are then fixed using::
pip install -r requirements-dev.txt
To run test:
.. code-block:: bash
pytest --doctest-modules numpoly test docs/user_guide/*.rst README.rst
To build documentation locally on your system, use make
from the doc/
folder:
.. code-block:: bash
cd doc/
make html
Run make
without argument to get a list of build targets. All targets
stores output to the folder doc/.build/html
.
Note that the documentation build assumes that pandoc
is installed on your
system and available in your path.
FAQs
Polynomials as a numpy datatype
We found that numpoly demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.