UNPKG

qminer

Version:

A C++ based data analytics platform for processing large-scale real-time streams containing structured and unstructured data

620 lines (616 loc) 25.7 kB
<!doctype html> <html> <head> <meta name="generator" content="JSDoc 3"> <meta charset="utf-8"> <title>Class: SparseVector</title> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css"> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css"> <link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css"> <link href="css/baseline.css" rel="stylesheet"> </head> <body onload="prettyPrint()"> <nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar"> <div id="jsdoc-navbar-container"> <div id="jsdoc-navbar-content"> <a href="index.html" class="jsdoc-navbar-package-name">QMiner JavaScript API v9.4.0</a> </div> </div> </nav> <div id="jsdoc-body-container"> <div id="jsdoc-content"> <div id="jsdoc-content-container"> <div id="jsdoc-main" role="main"> <header class="page-header"> <div class="symbol-detail-labels"><span class="label label-kind">class</span>&nbsp;<span class="label label-static">static</span></div> <h1><small><a href="module-la.html">la</a>.<wbr></small><span class="symbol-name">SparseVector</span></h1> <p class="source-link">Source: <a href="ladoc.js.html#source-line-525">ladoc.<wbr>js:525</a></p> <div class="symbol-classdesc"> <p>Sparse vector is an array of (int,double) pairs that represent column indices and values.</p> </div> <dl class="dl-compact"> </dl> </header> <section id="summary"> <div class="summary-callout"> <h2 class="summary-callout-heading">Properties</h2> <div class="summary-content"> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-la.SparseVector.html#dim">dim</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-la.SparseVector.html#nnz">nnz</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> </div> </div> </div> <div class="summary-callout"> <h2 class="summary-callout-heading">Methods</h2> <div class="summary-content"> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-la.SparseVector.html#at">at(idx)</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#full">full()</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#idxVec">idxVec()</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#inner">inner(arg)</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-la.SparseVector.html#multiply">multiply(num)</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#norm">norm()</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#normalize">normalize()</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#print">print()</a></dt> <dd> </dd> </dl> </div> <div class="summary-column"> <dl class="dl-summary-callout"> <dt><a href="module-la.SparseVector.html#put">put(idx, num)</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#sum">sum()</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#toString">toString()</a></dt> <dd> </dd> <dt><a href="module-la.SparseVector.html#valVec">valVec()</a></dt> <dd> </dd> </dl> </div> </div> </div> </section> <section> <h2 id="SparseVector">new&nbsp;<span class="symbol-name">SparseVector</span><span class="signature"><span class="signature-params">([arg][, dim])</span></span></h2> <p>Sparse Vector.</p> <section> <h3> Example </h3> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create new sparse vector with arrays var spVec &#x3D; new la.SparseVector([[0, 1], [2, 3], [3, 6]]); // sparse vector [1, 0, 3, 6] // create new sparse vector with dim var spVec2 &#x3D; new la.SparseVector([[0, 1], [2, 3], [3, 6]], 5); // largest index (zero based) is 4</code></pre> </div> </section> <section> <h3>Parameters</h3> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>arg</p> </td> <td> <p>(Array of Array of number or <a href="module-la.SparseVector.html">module:la.SparseVector</a>)</p> </td> <td> <p>Yes</p> </td> <td> <p>Constructor arguments. There are two ways of constructing: <br>1. Using a nested array of vector elements. Example: <code>[[0, 2],[2, 3]]</code> has two nonzero values, first value is 2 at position 0, second value is 3 at position 2, <br>2. using a sparse vector (copy constructor). </p> </td> </tr> <tr> <td> <p>dim</p> </td> <td> <p>number</p> </td> <td> <p>Yes</p> </td> <td> <p>Maximum length of sparse vector. <i>It is only in combinantion with nested array of vector elements.</i></p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> </dl> </section> <section> <h2>Properties</h2> <section> <h3 id="dim"><span class="symbol-name">dim</span></h3> <p>Returns the dimension of sparse vector. Type <code>number</code>.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector and designate the dimension of the vector var vec &#x3D; new la.SparseVector([[0, 2], [3, 1], [7, 5], [11, 4]], 15); // get the dimension of the sparse vector // returns 15 var dim &#x3D; vec.dim;</code></pre> </div> </section> <dl class="dl-compact"> </dl> <h3 id="nnz"><span class="symbol-name">nnz</span></h3> <p>Returns the number of non-zero values. Type <code>number</code>.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var vec &#x3D; new la.SparseVector([[0, 2], [3, 1], [7, 5], [11, 4]]); // check the number of nonzero values in sparse vector // returns 4 var nonz &#x3D; vec.nnz;</code></pre> </div> </section> <dl class="dl-compact"> </dl> </section> <h2>Methods</h2> <section> <h3 id="at"><span class="symbol-name">at</span><span class="signature"><span class="signature-params">(idx)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Returns an element of the sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a sparse vector var vec &#x3D; new la.SparseVector([[0, 1], [3, 2], [4, -5]]); // get the value at the position 3 vec.at(3); // returns the value 2</code></pre> </div> </section> <section> <h4>Parameter</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>idx</p> </td> <td> <p>number</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Index (zero based).</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Sparse vector element.</p> </dd> </dl> <h3 id="full"><span class="symbol-name">full</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.Vector.html">module:la.Vector</a></span></span></h3> <p>Returns the dense vector representation of the sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var vec &#x3D; new la.SparseVector([[0, 2], [3, 1], [7, 5], [11, 4]]); // create a dense representation of the vector var dense &#x3D; vec.full();</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.Vector.html">module:la.Vector</a></code>B The dense vector representation.</p> </dd> </dl> <h3 id="idxVec"><span class="symbol-name">idxVec</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.Vector.html">module:la.Vector</a></span></span></h3> <p>Returns a dense vector of indices (zero based) of non-zero elements of sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sprase vector var vec &#x3D; new la.SparseVector([[0, 2], [3, 1], [7, 5], [11, 4]]); // get the non-zero indeces of the sparse vector var idxVec &#x3D; vec.idxVec();</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.Vector.html">module:la.Vector</a></code>B A dense vector of indeces.</p> </dd> </dl> <h3 id="inner"><span class="symbol-name">inner</span><span class="signature"><span class="signature-params">(arg)</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Returns the inner product of the parameter and the sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create two vectors, one sparse and one dense var sparse &#x3D; new la.SparseVector([[0, 1], [3, 2], [4, -5]]); var dense &#x3D; new la.Vector([3, -4, 2, 0.5, -1]); // get the inner product of the vectors sparse.inner(dense); // returns the value 9</code></pre> </div> </section> <section> <h4>Parameter</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>arg</p> </td> <td> <p>(<a href="module-la.Vector.html">module:la.Vector</a> or <a href="module-la.SparseVector.html">module:la.SparseVector</a>)</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>The inner product input.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B The inner product of the two vectors.</p> </dd> </dl> <h3 id="multiply"><span class="symbol-name">multiply</span><span class="signature"><span class="signature-params">(num)</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.SparseVector.html">module:la.SparseVector</a></span></span></h3> <p>Multiplies the sparse vector with a scalar.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var spVec &#x3D; new la.SparseVector([[0, 1], [2, 3], [3, 6]]); // multiply sparse vector with scalar 3.14 var spVec2 &#x3D; spVec.multiply(3.14); // returns sparse vector [3.14, 0, 9.42, 18.84]</code></pre> </div> </section> <section> <h4>Parameter</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>num</p> </td> <td> <p>number</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>The scalar.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.SparseVector.html">module:la.SparseVector</a></code>B The product of <code>num</code> and sparse vector.</p> </dd> </dl> <h3 id="norm"><span class="symbol-name">norm</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Returns the norm of sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var vec &#x3D; new la.SparseVector([[0, 2], [3, 1], [7, 5], [11, 4]]); // get the norm of the vector var norm &#x3D; vec.norm();</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B Norm of sparse vector.</p> </dd> </dl> <h3 id="normalize"><span class="symbol-name">normalize</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.SparseVector.html">module:la.SparseVector</a></span></span></h3> <p>Normalizes the sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var spVec &#x3D; new la.SparseVector([[0, 1], [2, 3], [3, 6]]); // normalize the sparse vector spVec.normalize();</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.SparseVector.html">module:la.SparseVector</a></code>B Self. The vector is normalized.</p> </dd> </dl> <h3 id="print"><span class="symbol-name">print</span><span class="signature"><span class="signature-params">()</span></span></h3> <p>Prints the sparse vector on-screen.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var spVec &#x3D; new la.SparseVector([[0, 1], [2, 3]]); // print sparse vector spVec.print(); // shows on-screen [(0, 1), (2, 3)]</code></pre> </div> </section> <dl class="dl-compact"> </dl> <h3 id="put"><span class="symbol-name">put</span><span class="signature"><span class="signature-params">(idx, num)</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.SparseVector.html">module:la.SparseVector</a></span></span></h3> <p>Puts a new element in sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var vec &#x3D; new la.SparseVector([[0, 1], [3, 2], [4, -5]]); // set the new values at position 2 vec.put(2, -4);</code></pre> </div> </section> <section> <h4>Parameters</h4> <table class="jsdoc-details-table"> <thead> <tr> <th>Name</th> <th>Type</th> <th>Optional</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td> <p>idx</p> </td> <td> <p>number</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Index (zero based).</p> </td> </tr> <tr> <td> <p>num</p> </td> <td> <p>number</p> </td> <td> <p>&nbsp;</p> </td> <td> <p>Input value.</p> </td> </tr> </tbody> </table> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.SparseVector.html">module:la.SparseVector</a></code>B Self. It puts/changes the values with the index <code>idx</code> to the value <code>num</code>.</p> </dd> </dl> <h3 id="sum"><span class="symbol-name">sum</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> number</span></span></h3> <p>Returns the sum of all values in sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var vec &#x3D; new la.SparseVector([[0, 1], [3, 2], [4, -5]]); // get the sum of the values in the vector vec.sum(); // returns -2</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>number</code>B The sum of all values in sparse vector.</p> </dd> </dl> <h3 id="toString"><span class="symbol-name">toString</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> string</span></span></h3> <p>Returns the string representation.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var spVec &#x3D; new la.SparseVector([[0, 1], [2, 3]]); // get the string representation of the vector spVec.toString(); // returns the string &#x27;[(0, 1), (2, 3)]&#x27;</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code>string</code>B The string representation of the sparse vector.</p> </dd> </dl> <h3 id="valVec"><span class="symbol-name">valVec</span><span class="signature"><span class="signature-params">()</span>&nbsp;&rarr; <span class="signature-returns"> <a href="module-la.Vector.html">module:la.Vector</a></span></span></h3> <p>Returns a dense vector of values of non-zero elements of sparse vector.</p> <section> <h4> Example </h4> <div> <pre class="prettyprint"><code>// import la module var la &#x3D; require(&#x27;qminer&#x27;).la; // create a new sparse vector var vec &#x3D; new la.SparseVector([[0, 2], [3, 1], [7, 5], [11, 4]]); // get the non-zero values of the sparse vector var valVec &#x3D; vec.valVec();</code></pre> </div> </section> <dl class="dl-compact"> <dt>Returns</dt> <dd> <p><code><a href="module-la.Vector.html">module:la.Vector</a></code>B A dense vector of values.</p> </dd> </dl> </section> </section> </div> </div> <nav id="jsdoc-toc-nav" role="navigation"></nav> </div> </div> <footer id="jsdoc-footer" class="jsdoc-footer"> <div id="jsdoc-footer-container"> <p> </p> </div> </footer> <script src="scripts/jquery.min.js"></script> <script src="scripts/tree.jquery.js"></script> <script src="scripts/prettify.js"></script> <script src="scripts/jsdoc-toc.js"></script> <script src="scripts/linenumber.js"></script> <script src="scripts/scrollanchor.js"></script> </body> </html>