Skip to main content

Wide (partial Khatri-Rao) sparse matrix product

Project description

wide-product implements a partial, column-wise Khatri-Rao product. It is fast, and works on sparse matrices.

It can be useful for engineering of cross-features for machine learning.

Definition

For a pair of scalars (~ one by one matrices), the wide product is multiplication:

wide_product ( [[a]], [[b]] ) == [[a * b]]

Where matrices are constructed by vertical stacking, the product is row-wise:

wide_product ( vstack((A, B)), vstack((C, D)) ) ==
    vstack((wide_product(A, C),
            wide_product(B, D)))

Where matrices are constructed by horizontal stacking, the product contains all the products of the subcomponents up to permutation of columns:

wide_product ( hstack((A, B)), hstack((C, D)) ) ==
    hstack((wide_product(A, C),
            wide_product(A, D),
            wide_product(B, C),
            wide_product(B, D)))

Installation

pip install wide-product

Development

To build the module:

python setup.py build

To test:

PYTHONPATH=$(echo build/lib*):. py.test

To install:

pip install .

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

wide-product-0.1.1.tar.gz (4.5 kB view hashes)

Uploaded Source

Built Distributions

wide_product-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.1 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

wide_product-0.1.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

wide_product-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl (10.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

wide_product-0.1.1-cp311-cp311-macosx_10_9_universal2.whl (16.4 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

wide_product-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

wide_product-0.1.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

wide_product-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl (10.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

wide_product-0.1.1-cp310-cp310-macosx_10_9_universal2.whl (16.4 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

wide_product-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

wide_product-0.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

wide_product-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl (10.2 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

wide_product-0.1.1-cp39-cp39-macosx_10_9_universal2.whl (16.4 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

wide_product-0.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.3 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

wide_product-0.1.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.3 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

wide_product-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl (10.2 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

wide_product-0.1.1-cp38-cp38-macosx_10_9_universal2.whl (16.4 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

wide_product-0.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (20.1 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

wide_product-0.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.1 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

wide_product-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl (10.1 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

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