Menu

[r2941]: / trunk / htdocs / matplotlib.mlab.html.template  Maximize  Restore  History

Download this file

764 lines (753 with data), 66.3 kB

@header@
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="matplotlib.html"><font color="#ffffff">matplotlib</font></a>.mlab</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib64/python2.4/site-packages/matplotlib/mlab.py">/usr/lib64/python2.4/site-packages/matplotlib/mlab.py</a></font></td></tr></table>
    <p><tt>Numerical&nbsp;python&nbsp;functions&nbsp;written&nbsp;for&nbsp;compatability&nbsp;with&nbsp;matlab(TM)<br>
commands&nbsp;with&nbsp;the&nbsp;same&nbsp;names.&nbsp;&nbsp;<br>
&nbsp;<br>
&nbsp;&nbsp;Matlab(TM)&nbsp;compatible&nbsp;functions:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;cohere&nbsp;-&nbsp;Coherence&nbsp;(normalized&nbsp;cross&nbsp;spectral&nbsp;density)<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;conv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;convolution<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;corrcoef&nbsp;-&nbsp;The&nbsp;matrix&nbsp;of&nbsp;correlation&nbsp;coefficients<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;csd&nbsp;-&nbsp;Cross&nbsp;spectral&nbsp;density&nbsp;uing&nbsp;Welch's&nbsp;average&nbsp;periodogram<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;detrend&nbsp;--&nbsp;Remove&nbsp;the&nbsp;mean&nbsp;or&nbsp;best&nbsp;fit&nbsp;line&nbsp;from&nbsp;an&nbsp;array<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;find&nbsp;-&nbsp;Return&nbsp;the&nbsp;indices&nbsp;where&nbsp;some&nbsp;condition&nbsp;is&nbsp;true<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;linspace&nbsp;--&nbsp;Linear&nbsp;spaced&nbsp;array&nbsp;from&nbsp;min&nbsp;to&nbsp;max<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;hist&nbsp;--&nbsp;Histogram<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;polyfit&nbsp;-&nbsp;least&nbsp;squares&nbsp;best&nbsp;polynomial&nbsp;fit&nbsp;of&nbsp;x&nbsp;to&nbsp;y<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;polyval&nbsp;-&nbsp;evaluate&nbsp;a&nbsp;vector&nbsp;for&nbsp;a&nbsp;vector&nbsp;of&nbsp;polynomial&nbsp;coeffs<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;prctile&nbsp;-&nbsp;find&nbsp;the&nbsp;percentiles&nbsp;of&nbsp;a&nbsp;sequence<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;prepca&nbsp;-&nbsp;Principal&nbsp;Component's&nbsp;Analysis<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;psd&nbsp;-&nbsp;Power&nbsp;spectral&nbsp;density&nbsp;uing&nbsp;Welch's&nbsp;average&nbsp;periodogram<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;rk4&nbsp;-&nbsp;A&nbsp;4th&nbsp;order&nbsp;runge&nbsp;kutta&nbsp;integrator&nbsp;for&nbsp;1D&nbsp;or&nbsp;ND&nbsp;systems<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;vander&nbsp;-&nbsp;the&nbsp;Vandermonde&nbsp;matrix<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;trapz&nbsp;-&nbsp;trapeziodal&nbsp;integration<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;Functions&nbsp;that&nbsp;don't&nbsp;exist&nbsp;in&nbsp;matlab(TM),&nbsp;but&nbsp;are&nbsp;useful&nbsp;anyway:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;cohere_pairs&nbsp;-&nbsp;Coherence&nbsp;over&nbsp;all&nbsp;pairs.&nbsp;&nbsp;This&nbsp;is&nbsp;not&nbsp;a&nbsp;matlab<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function,&nbsp;but&nbsp;we&nbsp;compute&nbsp;coherence&nbsp;a&nbsp;lot&nbsp;in&nbsp;my&nbsp;lab,&nbsp;and&nbsp;we<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compute&nbsp;it&nbsp;for&nbsp;alot&nbsp;of&nbsp;pairs.&nbsp;&nbsp;This&nbsp;function&nbsp;is&nbsp;optimized&nbsp;to&nbsp;do<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;efficiently&nbsp;by&nbsp;caching&nbsp;the&nbsp;direct&nbsp;FFTs.<br>
&nbsp;<br>
Credits:<br>
&nbsp;<br>
&nbsp;&nbsp;Unless&nbsp;otherwise&nbsp;noted,&nbsp;these&nbsp;functions&nbsp;were&nbsp;written&nbsp;by<br>
&nbsp;&nbsp;Author:&nbsp;John&nbsp;D.&nbsp;Hunter&nbsp;&lt;jdhunter@ace.bsd.uchicago.edu&gt;<br>
&nbsp;<br>
&nbsp;&nbsp;Some&nbsp;others&nbsp;are&nbsp;from&nbsp;the&nbsp;Numeric&nbsp;documentation,&nbsp;or&nbsp;imported&nbsp;from<br>
&nbsp;&nbsp;MLab&nbsp;or&nbsp;other&nbsp;Numeric&nbsp;packages</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="matplotlib.numerix.linear_algebra.html">matplotlib.numerix.linear_algebra</a><br>
<a href="math.html">math</a><br>
</td><td width="25%" valign=top><a href="matplotlib.numerix.html">matplotlib.numerix</a><br>
<a href="matplotlib.numerix.html">matplotlib.numerix</a><br>
</td><td width="25%" valign=top><a href="matplotlib.nxutils.html">matplotlib.nxutils</a><br>
<a href="operator.html">operator</a><br>
</td><td width="25%" valign=top><a href="random.html">random</a><br>
<a href="sys.html">sys</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="matplotlib.mlab.html#FIFOBuffer">FIFOBuffer</a>
</font></dt></dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="FIFOBuffer">class <strong>FIFOBuffer</strong></a></font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>A&nbsp;FIFO&nbsp;queue&nbsp;to&nbsp;hold&nbsp;incoming&nbsp;x,&nbsp;y&nbsp;data&nbsp;in&nbsp;a&nbsp;rotating&nbsp;buffer&nbsp;using<br>
numerix&nbsp;arrrays&nbsp;under&nbsp;the&nbsp;hood.&nbsp;&nbsp;It&nbsp;is&nbsp;assumed&nbsp;that&nbsp;you&nbsp;will&nbsp;call<br>
asarrays&nbsp;much&nbsp;less&nbsp;frequently&nbsp;than&nbsp;you&nbsp;add&nbsp;data&nbsp;to&nbsp;the&nbsp;queue&nbsp;--<br>
otherwise&nbsp;another&nbsp;data&nbsp;structure&nbsp;will&nbsp;be&nbsp;faster<br>
&nbsp;<br>
This&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;support&nbsp;plots&nbsp;where&nbsp;data&nbsp;is&nbsp;added&nbsp;from&nbsp;a&nbsp;real<br>
time&nbsp;feed&nbsp;and&nbsp;the&nbsp;plot&nbsp;object&nbsp;wants&nbsp;grab&nbsp;data&nbsp;from&nbsp;the&nbsp;buffer&nbsp;and<br>
plot&nbsp;it&nbsp;to&nbsp;screen&nbsp;less&nbsp;freqeuently&nbsp;than&nbsp;the&nbsp;incoming<br>
&nbsp;<br>
If&nbsp;you&nbsp;set&nbsp;the&nbsp;dataLim&nbsp;attr&nbsp;to&nbsp;a&nbsp;matplotlib&nbsp;BBox&nbsp;(eg&nbsp;ax.dataLim),<br>
the&nbsp;dataLim&nbsp;will&nbsp;be&nbsp;updated&nbsp;as&nbsp;new&nbsp;data&nbsp;come&nbsp;in<br>
&nbsp;<br>
TODI:&nbsp;add&nbsp;a&nbsp;grow&nbsp;method&nbsp;that&nbsp;will&nbsp;extend&nbsp;nmax<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="FIFOBuffer-__init__"><strong>__init__</strong></a>(self, nmax)</dt><dd><tt>buffer&nbsp;up&nbsp;to&nbsp;nmax&nbsp;points</tt></dd></dl>

<dl><dt><a name="FIFOBuffer-add"><strong>add</strong></a>(self, x, y)</dt><dd><tt>add&nbsp;scalar&nbsp;x&nbsp;and&nbsp;y&nbsp;to&nbsp;the&nbsp;queue</tt></dd></dl>

<dl><dt><a name="FIFOBuffer-asarrays"><strong>asarrays</strong></a>(self)</dt><dd><tt>return&nbsp;x&nbsp;and&nbsp;y&nbsp;as&nbsp;arrays;&nbsp;their&nbsp;length&nbsp;will&nbsp;be&nbsp;the&nbsp;len&nbsp;of&nbsp;data<br>
added&nbsp;or&nbsp;nmax</tt></dd></dl>

<dl><dt><a name="FIFOBuffer-last"><strong>last</strong></a>(self)</dt><dd><tt>get&nbsp;the&nbsp;last&nbsp;x,&nbsp;y&nbsp;or&nbsp;None,&nbsp;None&nbsp;if&nbsp;no&nbsp;data&nbsp;set</tt></dd></dl>

<dl><dt><a name="FIFOBuffer-register"><strong>register</strong></a>(self, func, N)</dt><dd><tt>call&nbsp;func&nbsp;everytime&nbsp;N&nbsp;events&nbsp;are&nbsp;passed;&nbsp;func&nbsp;signature&nbsp;is&nbsp;func(fifo)</tt></dd></dl>

<dl><dt><a name="FIFOBuffer-update_datalim_to_current"><strong>update_datalim_to_current</strong></a>(self)</dt><dd><tt>update&nbsp;the&nbsp;datalim&nbsp;in&nbsp;the&nbsp;current&nbsp;data&nbsp;in&nbsp;the&nbsp;fifo</tt></dd></dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-amap"><strong>amap</strong></a>(fn, *args)</dt><dd><tt><a href="#-amap">amap</a>(function,&nbsp;sequence[,&nbsp;sequence,&nbsp;...])&nbsp;-&gt;&nbsp;array.<br>
&nbsp;<br>
Works&nbsp;like&nbsp;map(),&nbsp;but&nbsp;it&nbsp;returns&nbsp;an&nbsp;array.&nbsp;&nbsp;This&nbsp;is&nbsp;just&nbsp;a&nbsp;convenient<br>
shorthand&nbsp;for&nbsp;Numeric.array(map(...))</tt></dd></dl>
 <dl><dt><a name="-approx_real"><strong>approx_real</strong></a>(x)</dt><dd><tt><a href="#-approx_real">approx_real</a>(x)&nbsp;:&nbsp;returns&nbsp;x.real&nbsp;if&nbsp;|x.imag|&nbsp;&lt;&nbsp;|x.real|&nbsp;*&nbsp;_eps_approx.<br>
This&nbsp;function&nbsp;is&nbsp;needed&nbsp;by&nbsp;sqrtm&nbsp;and&nbsp;allows&nbsp;further&nbsp;functions.</tt></dd></dl>
 <dl><dt><a name="-base_repr"><strong>base_repr</strong></a>(number, base<font color="#909090">=2</font>, padding<font color="#909090">=0</font>)</dt><dd><tt>Return&nbsp;the&nbsp;representation&nbsp;of&nbsp;a&nbsp;number&nbsp;in&nbsp;any&nbsp;given&nbsp;base.</tt></dd></dl>
 <dl><dt><a name="-binary_repr"><strong>binary_repr</strong></a>(number, max_length<font color="#909090">=1025</font>)</dt><dd><tt>Return&nbsp;the&nbsp;binary&nbsp;representation&nbsp;of&nbsp;the&nbsp;input&nbsp;number&nbsp;as&nbsp;a&nbsp;string.<br>
&nbsp;<br>
This&nbsp;is&nbsp;more&nbsp;efficient&nbsp;than&nbsp;using&nbsp;base_repr&nbsp;with&nbsp;base&nbsp;2.<br>
&nbsp;<br>
Increase&nbsp;the&nbsp;value&nbsp;of&nbsp;max_length&nbsp;for&nbsp;very&nbsp;large&nbsp;numbers.&nbsp;Note&nbsp;that&nbsp;on<br>
32-bit&nbsp;machines,&nbsp;2**1023&nbsp;is&nbsp;the&nbsp;largest&nbsp;integer&nbsp;power&nbsp;of&nbsp;2&nbsp;which&nbsp;can&nbsp;be<br>
converted&nbsp;to&nbsp;a&nbsp;Python&nbsp;float.</tt></dd></dl>
 <dl><dt><a name="-bivariate_normal"><strong>bivariate_normal</strong></a>(X, Y, sigmax<font color="#909090">=1.0</font>, sigmay<font color="#909090">=1.0</font>, mux<font color="#909090">=0.0</font>, muy<font color="#909090">=0.0</font>, sigmaxy<font color="#909090">=0.0</font>)</dt><dd><tt>Bivariate&nbsp;gaussan&nbsp;distribution&nbsp;for&nbsp;equal&nbsp;shape&nbsp;X,&nbsp;Y<br>
&nbsp;<br>
<a href="http://mathworld.wolfram.com/BivariateNormalDistribution.html">http://mathworld.wolfram.com/BivariateNormalDistribution.html</a></tt></dd></dl>
 <dl><dt><a name="-center_matrix"><strong>center_matrix</strong></a>(M, dim<font color="#909090">=0</font>)</dt><dd><tt>Return&nbsp;the&nbsp;matrix&nbsp;M&nbsp;with&nbsp;each&nbsp;row&nbsp;having&nbsp;zero&nbsp;mean&nbsp;and&nbsp;unit&nbsp;std<br>
&nbsp;<br>
if&nbsp;dim=1,&nbsp;center&nbsp;columns&nbsp;rather&nbsp;than&nbsp;rows</tt></dd></dl>
 <dl><dt><a name="-cohere"><strong>cohere</strong></a>(x, y, NFFT<font color="#909090">=256</font>, Fs<font color="#909090">=2</font>, detrend<font color="#909090">=&lt;function detrend_none&gt;</font>, window<font color="#909090">=&lt;function window_hanning&gt;</font>, noverlap<font color="#909090">=0</font>)</dt><dd><tt>cohere&nbsp;the&nbsp;coherence&nbsp;between&nbsp;x&nbsp;and&nbsp;y.&nbsp;&nbsp;Coherence&nbsp;is&nbsp;the&nbsp;normalized<br>
cross&nbsp;spectral&nbsp;density<br>
&nbsp;<br>
Cxy&nbsp;=&nbsp;|Pxy|^2/(Pxx*Pyy)<br>
&nbsp;<br>
The&nbsp;return&nbsp;value&nbsp;is&nbsp;(Cxy,&nbsp;f),&nbsp;where&nbsp;f&nbsp;are&nbsp;the&nbsp;frequencies&nbsp;of&nbsp;the<br>
coherence&nbsp;vector.&nbsp;&nbsp;See&nbsp;the&nbsp;docs&nbsp;for&nbsp;psd&nbsp;and&nbsp;csd&nbsp;for&nbsp;information<br>
about&nbsp;the&nbsp;function&nbsp;arguments&nbsp;NFFT,&nbsp;detrend,&nbsp;window,&nbsp;noverlap,&nbsp;as<br>
well&nbsp;as&nbsp;the&nbsp;methods&nbsp;used&nbsp;to&nbsp;compute&nbsp;Pxy,&nbsp;Pxx&nbsp;and&nbsp;Pyy.<br>
&nbsp;<br>
Returns&nbsp;the&nbsp;tuple&nbsp;Cxy,&nbsp;freqs</tt></dd></dl>
 <dl><dt><a name="-cohere_pairs"><strong>cohere_pairs</strong></a>(X, ij, NFFT<font color="#909090">=256</font>, Fs<font color="#909090">=2</font>, detrend<font color="#909090">=&lt;function detrend_none&gt;</font>, window<font color="#909090">=&lt;function window_hanning&gt;</font>, noverlap<font color="#909090">=0</font>, preferSpeedOverMemory<font color="#909090">=True</font>, progressCallback<font color="#909090">=&lt;function donothing_callback&gt;</font>, returnPxx<font color="#909090">=False</font>)</dt><dd><tt>Cxy,&nbsp;Phase,&nbsp;freqs&nbsp;=&nbsp;<a href="#-cohere_pairs">cohere_pairs</a>(&nbsp;X,&nbsp;ij,&nbsp;...)<br>
&nbsp;<br>
Compute&nbsp;the&nbsp;coherence&nbsp;for&nbsp;all&nbsp;pairs&nbsp;in&nbsp;ij.&nbsp;&nbsp;X&nbsp;is&nbsp;a<br>
numSamples,numCols&nbsp;Numeric&nbsp;array.&nbsp;&nbsp;ij&nbsp;is&nbsp;a&nbsp;list&nbsp;of&nbsp;tuples&nbsp;(i,j).<br>
Each&nbsp;tuple&nbsp;is&nbsp;a&nbsp;pair&nbsp;of&nbsp;indexes&nbsp;into&nbsp;the&nbsp;columns&nbsp;of&nbsp;X&nbsp;for&nbsp;which<br>
you&nbsp;want&nbsp;to&nbsp;compute&nbsp;coherence.&nbsp;&nbsp;For&nbsp;example,&nbsp;if&nbsp;X&nbsp;has&nbsp;64&nbsp;columns,<br>
and&nbsp;you&nbsp;want&nbsp;to&nbsp;compute&nbsp;all&nbsp;nonredundant&nbsp;pairs,&nbsp;define&nbsp;ij&nbsp;as<br>
&nbsp;<br>
&nbsp;&nbsp;ij&nbsp;=&nbsp;[]<br>
&nbsp;&nbsp;for&nbsp;i&nbsp;in&nbsp;range(64):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;j&nbsp;in&nbsp;range(i+1,64):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ij.append(&nbsp;(i,j)&nbsp;)<br>
&nbsp;<br>
The&nbsp;other&nbsp;function&nbsp;arguments,&nbsp;except&nbsp;for&nbsp;'preferSpeedOverMemory'<br>
(see&nbsp;below),&nbsp;are&nbsp;explained&nbsp;in&nbsp;the&nbsp;help&nbsp;string&nbsp;of&nbsp;'psd'.<br>
&nbsp;<br>
Return&nbsp;value&nbsp;is&nbsp;a&nbsp;tuple&nbsp;(Cxy,&nbsp;Phase,&nbsp;freqs).<br>
&nbsp;<br>
&nbsp;&nbsp;Cxy&nbsp;--&nbsp;a&nbsp;dictionary&nbsp;of&nbsp;(i,j)&nbsp;tuples&nbsp;-&gt;&nbsp;coherence&nbsp;vector&nbsp;for&nbsp;that<br>
&nbsp;&nbsp;&nbsp;&nbsp;pair.&nbsp;&nbsp;Ie,&nbsp;Cxy[(i,j)&nbsp;=&nbsp;<a href="#-cohere">cohere</a>(X[:,i],&nbsp;X[:,j]).&nbsp;&nbsp;Number&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;dictionary&nbsp;keys&nbsp;is&nbsp;len(ij)<br>
&nbsp;&nbsp;<br>
&nbsp;&nbsp;Phase&nbsp;--&nbsp;a&nbsp;dictionary&nbsp;of&nbsp;phases&nbsp;of&nbsp;the&nbsp;cross&nbsp;spectral&nbsp;density&nbsp;at<br>
&nbsp;&nbsp;&nbsp;&nbsp;each&nbsp;frequency&nbsp;for&nbsp;each&nbsp;pair.&nbsp;&nbsp;keys&nbsp;are&nbsp;(i,j).<br>
&nbsp;<br>
&nbsp;&nbsp;freqs&nbsp;--&nbsp;a&nbsp;vector&nbsp;of&nbsp;frequencies,&nbsp;equal&nbsp;in&nbsp;length&nbsp;to&nbsp;either&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;coherence&nbsp;or&nbsp;phase&nbsp;vectors&nbsp;for&nbsp;any&nbsp;i,j&nbsp;key.&nbsp;&nbsp;Eg,&nbsp;to&nbsp;make&nbsp;a&nbsp;coherence<br>
&nbsp;&nbsp;&nbsp;&nbsp;Bode&nbsp;plot:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subplot(211)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;plot(&nbsp;freqs,&nbsp;Cxy[(12,19)])<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subplot(212)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;plot(&nbsp;freqs,&nbsp;Phase[(12,19)])<br>
&nbsp;&nbsp;<br>
For&nbsp;a&nbsp;large&nbsp;number&nbsp;of&nbsp;pairs,&nbsp;cohere_pairs&nbsp;can&nbsp;be&nbsp;much&nbsp;more<br>
efficient&nbsp;than&nbsp;just&nbsp;calling&nbsp;cohere&nbsp;for&nbsp;each&nbsp;pair,&nbsp;because&nbsp;it<br>
caches&nbsp;most&nbsp;of&nbsp;the&nbsp;intensive&nbsp;computations.&nbsp;&nbsp;If&nbsp;N&nbsp;is&nbsp;the&nbsp;number&nbsp;of<br>
pairs,&nbsp;this&nbsp;function&nbsp;is&nbsp;O(N)&nbsp;for&nbsp;most&nbsp;of&nbsp;the&nbsp;heavy&nbsp;lifting,<br>
whereas&nbsp;calling&nbsp;cohere&nbsp;for&nbsp;each&nbsp;pair&nbsp;is&nbsp;O(N^2).&nbsp;&nbsp;However,&nbsp;because<br>
of&nbsp;the&nbsp;caching,&nbsp;it&nbsp;is&nbsp;also&nbsp;more&nbsp;memory&nbsp;intensive,&nbsp;making&nbsp;2<br>
additional&nbsp;complex&nbsp;arrays&nbsp;with&nbsp;approximately&nbsp;the&nbsp;same&nbsp;number&nbsp;of<br>
elements&nbsp;as&nbsp;X.<br>
&nbsp;<br>
The&nbsp;parameter&nbsp;'preferSpeedOverMemory',&nbsp;if&nbsp;false,&nbsp;limits&nbsp;the<br>
caching&nbsp;by&nbsp;only&nbsp;making&nbsp;one,&nbsp;rather&nbsp;than&nbsp;two,&nbsp;complex&nbsp;cache&nbsp;arrays.<br>
This&nbsp;is&nbsp;useful&nbsp;if&nbsp;memory&nbsp;becomes&nbsp;critical.&nbsp;&nbsp;Even&nbsp;when<br>
preferSpeedOverMemory&nbsp;is&nbsp;false,&nbsp;cohere_pairs&nbsp;will&nbsp;still&nbsp;give<br>
significant&nbsp;performace&nbsp;gains&nbsp;over&nbsp;calling&nbsp;cohere&nbsp;for&nbsp;each&nbsp;pair,<br>
and&nbsp;will&nbsp;use&nbsp;subtantially&nbsp;less&nbsp;memory&nbsp;than&nbsp;if<br>
preferSpeedOverMemory&nbsp;is&nbsp;true.&nbsp;&nbsp;In&nbsp;my&nbsp;tests&nbsp;with&nbsp;a&nbsp;43000,64&nbsp;array<br>
over&nbsp;all&nbsp;nonredundant&nbsp;pairs,&nbsp;preferSpeedOverMemory=1&nbsp;delivered&nbsp;a<br>
33%&nbsp;performace&nbsp;boost&nbsp;on&nbsp;a&nbsp;1.7GHZ&nbsp;Athlon&nbsp;with&nbsp;512MB&nbsp;RAM&nbsp;compared<br>
with&nbsp;preferSpeedOverMemory=0.&nbsp;&nbsp;But&nbsp;both&nbsp;solutions&nbsp;were&nbsp;more&nbsp;than<br>
10x&nbsp;faster&nbsp;than&nbsp;naievly&nbsp;crunching&nbsp;all&nbsp;possible&nbsp;pairs&nbsp;through<br>
cohere.<br>
&nbsp;<br>
See&nbsp;test/cohere_pairs_test.py&nbsp;in&nbsp;the&nbsp;src&nbsp;tree&nbsp;for&nbsp;an&nbsp;example<br>
script&nbsp;that&nbsp;shows&nbsp;that&nbsp;this&nbsp;cohere_pairs&nbsp;and&nbsp;cohere&nbsp;give&nbsp;the&nbsp;same<br>
results&nbsp;for&nbsp;a&nbsp;given&nbsp;pair.</tt></dd></dl>
 <dl><dt><a name="-concatenate"><strong>concatenate</strong></a>(...)</dt><dd><tt><a href="#-concatenate">concatenate</a>((a1,&nbsp;a2,&nbsp;...),&nbsp;axis=0)<br>
&nbsp;<br>
Join&nbsp;arrays&nbsp;together.<br>
&nbsp;<br>
The&nbsp;tuple&nbsp;of&nbsp;sequences&nbsp;(a1,&nbsp;a2,&nbsp;...)&nbsp;are&nbsp;joined&nbsp;along&nbsp;the&nbsp;given&nbsp;axis<br>
(default&nbsp;is&nbsp;the&nbsp;first&nbsp;one)&nbsp;into&nbsp;a&nbsp;single&nbsp;numpy&nbsp;array.<br>
&nbsp;<br>
Example:<br>
&nbsp;<br>
&gt;&gt;&gt;&nbsp;<a href="#-concatenate">concatenate</a>(&nbsp;([0,1,2],&nbsp;[5,6,7])&nbsp;)<br>
array([0,&nbsp;1,&nbsp;2,&nbsp;5,&nbsp;6,&nbsp;7])</tt></dd></dl>
 <dl><dt><a name="-conv"><strong>conv</strong></a>(x, y, mode<font color="#909090">=2</font>)</dt><dd><tt>convolve&nbsp;x&nbsp;with&nbsp;y</tt></dd></dl>
 <dl><dt><a name="-corrcoef"><strong>corrcoef</strong></a>(*args)</dt><dd><tt><a href="#-corrcoef">corrcoef</a>(X)&nbsp;where&nbsp;X&nbsp;is&nbsp;a&nbsp;matrix&nbsp;returns&nbsp;a&nbsp;matrix&nbsp;of&nbsp;correlation<br>
coefficients&nbsp;for&nbsp;each&nbsp;numrows&nbsp;observations&nbsp;and&nbsp;numcols&nbsp;variables.<br>
&nbsp;<br>
<a href="#-corrcoef">corrcoef</a>(x,y)&nbsp;where&nbsp;x&nbsp;and&nbsp;y&nbsp;are&nbsp;vectors&nbsp;returns&nbsp;the&nbsp;matrix&nbsp;or<br>
correlation&nbsp;coefficients&nbsp;for&nbsp;x&nbsp;and&nbsp;y.<br>
&nbsp;<br>
Numeric&nbsp;arrays&nbsp;can&nbsp;be&nbsp;real&nbsp;or&nbsp;complex<br>
&nbsp;<br>
The&nbsp;correlation&nbsp;matrix&nbsp;is&nbsp;defined&nbsp;from&nbsp;the&nbsp;covariance&nbsp;matrix&nbsp;C&nbsp;as<br>
&nbsp;<br>
r(i,j)&nbsp;=&nbsp;C[i,j]&nbsp;/&nbsp;sqrt(C[i,i]*C[j,j])</tt></dd></dl>
 <dl><dt><a name="-csd"><strong>csd</strong></a>(x, y, NFFT<font color="#909090">=256</font>, Fs<font color="#909090">=2</font>, detrend<font color="#909090">=&lt;function detrend_none&gt;</font>, window<font color="#909090">=&lt;function window_hanning&gt;</font>, noverlap<font color="#909090">=0</font>)</dt><dd><tt>The&nbsp;cross&nbsp;spectral&nbsp;density&nbsp;Pxy&nbsp;by&nbsp;Welches&nbsp;average&nbsp;periodogram<br>
method.&nbsp;&nbsp;The&nbsp;vectors&nbsp;x&nbsp;and&nbsp;y&nbsp;are&nbsp;divided&nbsp;into&nbsp;NFFT&nbsp;length<br>
segments.&nbsp;&nbsp;Each&nbsp;segment&nbsp;is&nbsp;detrended&nbsp;by&nbsp;function&nbsp;detrend&nbsp;and<br>
windowed&nbsp;by&nbsp;function&nbsp;window.&nbsp;&nbsp;noverlap&nbsp;gives&nbsp;the&nbsp;length&nbsp;of&nbsp;the<br>
overlap&nbsp;between&nbsp;segments.&nbsp;&nbsp;The&nbsp;product&nbsp;of&nbsp;the&nbsp;direct&nbsp;FFTs&nbsp;of&nbsp;x&nbsp;and<br>
y&nbsp;are&nbsp;averaged&nbsp;over&nbsp;each&nbsp;segment&nbsp;to&nbsp;compute&nbsp;Pxy,&nbsp;with&nbsp;a&nbsp;scaling&nbsp;to<br>
correct&nbsp;for&nbsp;power&nbsp;loss&nbsp;due&nbsp;to&nbsp;windowing.&nbsp;&nbsp;Fs&nbsp;is&nbsp;the&nbsp;sampling<br>
frequency.<br>
&nbsp;<br>
NFFT&nbsp;must&nbsp;be&nbsp;a&nbsp;power&nbsp;of&nbsp;2<br>
&nbsp;<br>
window&nbsp;can&nbsp;be&nbsp;a&nbsp;function&nbsp;or&nbsp;a&nbsp;vector&nbsp;of&nbsp;length&nbsp;NFFT.&nbsp;To&nbsp;create&nbsp;<br>
window&nbsp;vectors&nbsp;see&nbsp;numpy.blackman,&nbsp;numpy.hamming,&nbsp;numpy.bartlett,<br>
scipy.signal,&nbsp;scipy.signal.get_window&nbsp;etc.<br>
&nbsp;<br>
Returns&nbsp;the&nbsp;tuple&nbsp;Pxy,&nbsp;freqs<br>
&nbsp;<br>
&nbsp;<br>
&nbsp;<br>
Refs:<br>
&nbsp;&nbsp;Bendat&nbsp;&amp;&nbsp;Piersol&nbsp;--&nbsp;Random&nbsp;Data:&nbsp;Analysis&nbsp;and&nbsp;Measurement<br>
&nbsp;&nbsp;&nbsp;&nbsp;Procedures,&nbsp;John&nbsp;Wiley&nbsp;&amp;&nbsp;Sons&nbsp;(1986)</tt></dd></dl>
 <dl><dt><a name="-detrend"><strong>detrend</strong></a>(x, key<font color="#909090">=None</font>)</dt></dl>
 <dl><dt><a name="-detrend_linear"><strong>detrend_linear</strong></a>(x)</dt><dd><tt>Return&nbsp;x&nbsp;minus&nbsp;best&nbsp;fit&nbsp;line;&nbsp;'linear'&nbsp;detrending</tt></dd></dl>
 <dl><dt><a name="-detrend_mean"><strong>detrend_mean</strong></a>(x)</dt><dd><tt>Return&nbsp;x&nbsp;minus&nbsp;the&nbsp;<a href="#-mean">mean</a>(x)</tt></dd></dl>
 <dl><dt><a name="-detrend_none"><strong>detrend_none</strong></a>(x)</dt><dd><tt>Return&nbsp;x:&nbsp;no&nbsp;detrending</tt></dd></dl>
 <dl><dt><a name="-diagonal_matrix"><strong>diagonal_matrix</strong></a>(diag)</dt><dd><tt>Return&nbsp;square&nbsp;diagonal&nbsp;matrix&nbsp;whose&nbsp;non-zero&nbsp;elements&nbsp;are&nbsp;given&nbsp;by&nbsp;the<br>
input&nbsp;array.</tt></dd></dl>
 <dl><dt><a name="-dist"><strong>dist</strong></a>(x, y)</dt><dd><tt>return&nbsp;the&nbsp;distance&nbsp;between&nbsp;two&nbsp;points</tt></dd></dl>
 <dl><dt><a name="-dist_point_to_segment"><strong>dist_point_to_segment</strong></a>(p, s0, s1)</dt><dd><tt>get&nbsp;the&nbsp;distance&nbsp;of&nbsp;a&nbsp;point&nbsp;to&nbsp;a&nbsp;segment.<br>
&nbsp;<br>
p,&nbsp;s0,&nbsp;s1&nbsp;are&nbsp;xy&nbsp;sequences<br>
&nbsp;<br>
This&nbsp;algorithm&nbsp;from<br>
<a href="http://softsurfer.com/Archive/algorithm_0102/algorithm_0102.htm#Distance%20to%20Ray%20or%20Segment">http://softsurfer.com/Archive/algorithm_0102/algorithm_0102.htm#Distance%20to%20Ray%20or%20Segment</a></tt></dd></dl>
 <dl><dt><a name="-donothing_callback"><strong>donothing_callback</strong></a>(*args)</dt></dl>
 <dl><dt><a name="-dot"><strong>dot</strong></a>(...)</dt><dd><tt><a href="#-dot">dot</a>(a,b)<br>
Returns&nbsp;the&nbsp;dot&nbsp;product&nbsp;of&nbsp;a&nbsp;and&nbsp;b&nbsp;for&nbsp;arrays&nbsp;of&nbsp;floating&nbsp;point&nbsp;types.<br>
Like&nbsp;the&nbsp;generic&nbsp;numpy&nbsp;equivalent&nbsp;the&nbsp;product&nbsp;sum&nbsp;is&nbsp;over<br>
the&nbsp;last&nbsp;dimension&nbsp;of&nbsp;a&nbsp;and&nbsp;the&nbsp;second-to-last&nbsp;dimension&nbsp;of&nbsp;b.<br>
NB:&nbsp;The&nbsp;first&nbsp;argument&nbsp;is&nbsp;not&nbsp;conjugated.</tt></dd></dl>
 <dl><dt><a name="-entropy"><strong>entropy</strong></a>(y, bins)</dt><dd><tt>Return&nbsp;the&nbsp;entropy&nbsp;of&nbsp;the&nbsp;data&nbsp;in&nbsp;y<br>
&nbsp;<br>
\sum&nbsp;p_i&nbsp;<a href="#-log2">log2</a>(p_i)&nbsp;where&nbsp;p_i&nbsp;is&nbsp;the&nbsp;probability&nbsp;of&nbsp;observing&nbsp;y&nbsp;in<br>
the&nbsp;ith&nbsp;bin&nbsp;of&nbsp;bins.&nbsp;&nbsp;bins&nbsp;can&nbsp;be&nbsp;a&nbsp;number&nbsp;of&nbsp;bins&nbsp;or&nbsp;a&nbsp;range&nbsp;of<br>
bins;&nbsp;see&nbsp;hist<br>
&nbsp;<br>
Compare&nbsp;S&nbsp;with&nbsp;analytic&nbsp;calculation&nbsp;for&nbsp;a&nbsp;Gaussian<br>
x&nbsp;=&nbsp;mu&nbsp;+&nbsp;sigma*randn(200000)<br>
Sanalytic&nbsp;=&nbsp;0.5&nbsp;&nbsp;*&nbsp;(&nbsp;1.0&nbsp;+&nbsp;log(2*pi*sigma**2.0)&nbsp;)</tt></dd></dl>
 <dl><dt><a name="-exp_safe"><strong>exp_safe</strong></a>(x)</dt><dd><tt>Compute&nbsp;exponentials&nbsp;which&nbsp;safely&nbsp;underflow&nbsp;to&nbsp;zero.<br>
&nbsp;<br>
Slow&nbsp;but&nbsp;convenient&nbsp;to&nbsp;use.&nbsp;Note&nbsp;that&nbsp;NumArray&nbsp;will&nbsp;introduce&nbsp;proper<br>
floating&nbsp;point&nbsp;exception&nbsp;handling&nbsp;with&nbsp;access&nbsp;to&nbsp;the&nbsp;underlying<br>
hardware.</tt></dd></dl>
 <dl><dt><a name="-fftsurr"><strong>fftsurr</strong></a>(x, detrend<font color="#909090">=&lt;function detrend_none&gt;</font>, window<font color="#909090">=&lt;function window_none&gt;</font>)</dt><dd><tt>Compute&nbsp;an&nbsp;FFT&nbsp;phase&nbsp;randomized&nbsp;surrogate&nbsp;of&nbsp;x</tt></dd></dl>
 <dl><dt><a name="-find"><strong>find</strong></a>(condition)</dt><dd><tt>Return&nbsp;the&nbsp;indices&nbsp;where&nbsp;condition&nbsp;is&nbsp;true</tt></dd></dl>
 <dl><dt><a name="-fix"><strong>fix</strong></a>(x)</dt><dd><tt>Rounds&nbsp;towards&nbsp;zero.<br>
x_rounded&nbsp;=&nbsp;<a href="#-fix">fix</a>(x)&nbsp;rounds&nbsp;the&nbsp;elements&nbsp;of&nbsp;x&nbsp;to&nbsp;the&nbsp;nearest&nbsp;integers<br>
towards&nbsp;zero.<br>
For&nbsp;negative&nbsp;numbers&nbsp;is&nbsp;equivalent&nbsp;to&nbsp;ceil&nbsp;and&nbsp;for&nbsp;positive&nbsp;to&nbsp;floor.</tt></dd></dl>
 <dl><dt><a name="-frange"><strong>frange</strong></a>(xini, xfin<font color="#909090">=None</font>, delta<font color="#909090">=None</font>, **kw)</dt><dd><tt><a href="#-frange">frange</a>([start,]&nbsp;stop[,&nbsp;step,&nbsp;keywords])&nbsp;-&gt;&nbsp;array&nbsp;of&nbsp;floats<br>
&nbsp;<br>
Return&nbsp;a&nbsp;Numeric&nbsp;array()&nbsp;containing&nbsp;a&nbsp;progression&nbsp;of&nbsp;floats.&nbsp;Similar&nbsp;to<br>
arange(),&nbsp;but&nbsp;defaults&nbsp;to&nbsp;a&nbsp;closed&nbsp;interval.<br>
&nbsp;<br>
<a href="#-frange">frange</a>(x0,&nbsp;x1)&nbsp;returns&nbsp;[x0,&nbsp;x0+1,&nbsp;x0+2,&nbsp;...,&nbsp;x1];&nbsp;start&nbsp;defaults&nbsp;to&nbsp;0,&nbsp;and<br>
the&nbsp;endpoint&nbsp;*is&nbsp;included*.&nbsp;This&nbsp;behavior&nbsp;is&nbsp;different&nbsp;from&nbsp;that&nbsp;of<br>
range()&nbsp;and&nbsp;arange().&nbsp;This&nbsp;is&nbsp;deliberate,&nbsp;since&nbsp;frange&nbsp;will&nbsp;probably&nbsp;be<br>
more&nbsp;useful&nbsp;for&nbsp;generating&nbsp;lists&nbsp;of&nbsp;points&nbsp;for&nbsp;function&nbsp;evaluation,&nbsp;and<br>
endpoints&nbsp;are&nbsp;often&nbsp;desired&nbsp;in&nbsp;this&nbsp;use.&nbsp;The&nbsp;usual&nbsp;behavior&nbsp;of&nbsp;range()&nbsp;can<br>
be&nbsp;obtained&nbsp;by&nbsp;setting&nbsp;the&nbsp;keyword&nbsp;'closed=0',&nbsp;in&nbsp;this&nbsp;case&nbsp;<a href="#-frange">frange</a>()<br>
basically&nbsp;becomes&nbsp;arange().<br>
&nbsp;<br>
When&nbsp;step&nbsp;is&nbsp;given,&nbsp;it&nbsp;specifies&nbsp;the&nbsp;increment&nbsp;(or&nbsp;decrement).&nbsp;All<br>
arguments&nbsp;can&nbsp;be&nbsp;floating&nbsp;point&nbsp;numbers.<br>
&nbsp;<br>
<a href="#-frange">frange</a>(x0,x1,d)&nbsp;returns&nbsp;[x0,x0+d,x0+2d,...,xfin]&nbsp;where&nbsp;xfin&lt;=x1.<br>
&nbsp;<br>
frange&nbsp;can&nbsp;also&nbsp;be&nbsp;called&nbsp;with&nbsp;the&nbsp;keyword&nbsp;'npts'.&nbsp;This&nbsp;sets&nbsp;the&nbsp;number&nbsp;of<br>
points&nbsp;the&nbsp;list&nbsp;should&nbsp;contain&nbsp;(and&nbsp;overrides&nbsp;the&nbsp;value&nbsp;'step'&nbsp;might&nbsp;have<br>
been&nbsp;given).&nbsp;arange()&nbsp;doesn't&nbsp;offer&nbsp;this&nbsp;option.<br>
&nbsp;<br>
Examples:<br>
&gt;&gt;&gt;&nbsp;<a href="#-frange">frange</a>(3)<br>
array([&nbsp;0.,&nbsp;&nbsp;1.,&nbsp;&nbsp;2.,&nbsp;&nbsp;3.])<br>
&gt;&gt;&gt;&nbsp;<a href="#-frange">frange</a>(3,closed=0)<br>
array([&nbsp;0.,&nbsp;&nbsp;1.,&nbsp;&nbsp;2.])<br>
&gt;&gt;&gt;&nbsp;<a href="#-frange">frange</a>(1,6,2)<br>
array([1,&nbsp;3,&nbsp;5])<br>
&gt;&gt;&gt;&nbsp;<a href="#-frange">frange</a>(1,6.5,npts=5)<br>
array([&nbsp;1.&nbsp;&nbsp;&nbsp;,&nbsp;&nbsp;2.375,&nbsp;&nbsp;3.75&nbsp;,&nbsp;&nbsp;5.125,&nbsp;&nbsp;6.5&nbsp;&nbsp;])</tt></dd></dl>
 <dl><dt><a name="-fromfunction_kw"><strong>fromfunction_kw</strong></a>(function, dimensions, **kwargs)</dt><dd><tt>Drop-in&nbsp;replacement&nbsp;for&nbsp;fromfunction()&nbsp;from&nbsp;Numerical&nbsp;Python.<br>
&nbsp;<br>
Allows&nbsp;passing&nbsp;keyword&nbsp;arguments&nbsp;to&nbsp;the&nbsp;desired&nbsp;function.<br>
&nbsp;<br>
Call&nbsp;it&nbsp;as&nbsp;(keywords&nbsp;are&nbsp;optional):<br>
<a href="#-fromfunction_kw">fromfunction_kw</a>(MyFunction,&nbsp;dimensions,&nbsp;keywords)<br>
&nbsp;<br>
The&nbsp;function&nbsp;MyFunction()&nbsp;is&nbsp;responsible&nbsp;for&nbsp;handling&nbsp;the&nbsp;dictionary&nbsp;of<br>
keywords&nbsp;it&nbsp;will&nbsp;recieve.</tt></dd></dl>
 <dl><dt><a name="-get_sparse_matrix"><strong>get_sparse_matrix</strong></a>(M, N, frac<font color="#909090">=0.10000000000000001</font>)</dt><dd><tt>return&nbsp;a&nbsp;MxN&nbsp;sparse&nbsp;matrix&nbsp;with&nbsp;frac&nbsp;elements&nbsp;randomly&nbsp;filled</tt></dd></dl>
 <dl><dt><a name="-get_xyz_where"><strong>get_xyz_where</strong></a>(Z, Cond)</dt><dd><tt>Z&nbsp;and&nbsp;Cond&nbsp;are&nbsp;MxN&nbsp;matrices.&nbsp;&nbsp;Z&nbsp;are&nbsp;data&nbsp;and&nbsp;Cond&nbsp;is&nbsp;a&nbsp;boolean<br>
matrix&nbsp;where&nbsp;some&nbsp;condition&nbsp;is&nbsp;satisfied.&nbsp;&nbsp;Return&nbsp;value&nbsp;is&nbsp;x,y,z<br>
where&nbsp;x&nbsp;and&nbsp;y&nbsp;are&nbsp;the&nbsp;indices&nbsp;into&nbsp;Z&nbsp;and&nbsp;z&nbsp;are&nbsp;the&nbsp;values&nbsp;of&nbsp;Z&nbsp;at<br>
those&nbsp;indices.&nbsp;&nbsp;x,y,z&nbsp;are&nbsp;1D&nbsp;arrays</tt></dd></dl>
 <dl><dt><a name="-hist"><strong>hist</strong></a>(y, bins<font color="#909090">=10</font>, normed<font color="#909090">=0</font>)</dt><dd><tt>Return&nbsp;the&nbsp;histogram&nbsp;of&nbsp;y&nbsp;with&nbsp;bins&nbsp;equally&nbsp;sized&nbsp;bins.&nbsp;&nbsp;If&nbsp;bins<br>
is&nbsp;an&nbsp;array,&nbsp;use&nbsp;the&nbsp;bins.&nbsp;&nbsp;Return&nbsp;value&nbsp;is<br>
(n,x)&nbsp;where&nbsp;n&nbsp;is&nbsp;the&nbsp;count&nbsp;for&nbsp;each&nbsp;bin&nbsp;in&nbsp;x<br>
&nbsp;<br>
If&nbsp;normed&nbsp;is&nbsp;False,&nbsp;return&nbsp;the&nbsp;counts&nbsp;in&nbsp;the&nbsp;first&nbsp;element&nbsp;of&nbsp;the<br>
return&nbsp;tuple.&nbsp;&nbsp;If&nbsp;normed&nbsp;is&nbsp;True,&nbsp;return&nbsp;the&nbsp;probability&nbsp;density<br>
n/(len(y)*dbin)<br>
&nbsp;<br>
If&nbsp;y&nbsp;has&nbsp;rank&gt;1,&nbsp;it&nbsp;will&nbsp;be&nbsp;raveled<br>
Credits:&nbsp;the&nbsp;Numeric&nbsp;22&nbsp;documentation</tt></dd></dl>
 <dl><dt><a name="-identity"><strong>identity</strong></a>(n, rank<font color="#909090">=2</font>, typecode<font color="#909090">='l'</font>)</dt><dd><tt><a href="#-identity">identity</a>(n,r)&nbsp;returns&nbsp;the&nbsp;identity&nbsp;matrix&nbsp;of&nbsp;shape&nbsp;(n,n,...,n)&nbsp;(rank&nbsp;r).<br>
&nbsp;<br>
For&nbsp;ranks&nbsp;higher&nbsp;than&nbsp;2,&nbsp;this&nbsp;object&nbsp;is&nbsp;simply&nbsp;a&nbsp;multi-index&nbsp;Kronecker<br>
delta:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;1&nbsp;&nbsp;if&nbsp;i0=i1=...=iR,<br>
id[i0,i1,...,iR]&nbsp;=&nbsp;-|<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\&nbsp;&nbsp;0&nbsp;&nbsp;otherwise.<br>
&nbsp;<br>
Optionally&nbsp;a&nbsp;typecode&nbsp;may&nbsp;be&nbsp;given&nbsp;(it&nbsp;defaults&nbsp;to&nbsp;'l').<br>
&nbsp;<br>
Since&nbsp;rank&nbsp;defaults&nbsp;to&nbsp;2,&nbsp;this&nbsp;function&nbsp;behaves&nbsp;in&nbsp;the&nbsp;default&nbsp;case&nbsp;(when<br>
only&nbsp;n&nbsp;is&nbsp;given)&nbsp;like&nbsp;the&nbsp;Numeric&nbsp;identity&nbsp;function.</tt></dd></dl>
 <dl><dt><a name="-inside_poly"><strong>inside_poly</strong></a>(points, verts)</dt><dd><tt>"<br>
points&nbsp;is&nbsp;a&nbsp;sequence&nbsp;of&nbsp;x,y&nbsp;points<br>
verts&nbsp;is&nbsp;a&nbsp;sequence&nbsp;of&nbsp;x,y&nbsp;vertices&nbsp;of&nbsp;a&nbsp;poygon<br>
&nbsp;<br>
return&nbsp;value&nbsp;is&nbsp;a&nbsp;sequence&nbsp;on&nbsp;indices&nbsp;into&nbsp;points&nbsp;for&nbsp;the&nbsp;points<br>
that&nbsp;are&nbsp;inside&nbsp;the&nbsp;polygon</tt></dd></dl>
 <dl><dt><a name="-ispower2"><strong>ispower2</strong></a>(n)</dt><dd><tt>Returns&nbsp;the&nbsp;log&nbsp;base&nbsp;2&nbsp;of&nbsp;n&nbsp;if&nbsp;n&nbsp;is&nbsp;a&nbsp;power&nbsp;of&nbsp;2,&nbsp;zero&nbsp;otherwise.<br>
&nbsp;<br>
Note&nbsp;the&nbsp;potential&nbsp;ambiguity&nbsp;if&nbsp;n==1:&nbsp;2**0==1,&nbsp;interpret&nbsp;accordingly.</tt></dd></dl>
 <dl><dt><a name="-l1norm"><strong>l1norm</strong></a>(a)</dt><dd><tt>Return&nbsp;the&nbsp;l1&nbsp;norm&nbsp;of&nbsp;a,&nbsp;flattened&nbsp;out.<br>
&nbsp;<br>
Implemented&nbsp;as&nbsp;a&nbsp;separate&nbsp;function&nbsp;(not&nbsp;a&nbsp;call&nbsp;to&nbsp;<a href="#-norm">norm</a>()&nbsp;for&nbsp;speed).</tt></dd></dl>
 <dl><dt><a name="-l2norm"><strong>l2norm</strong></a>(a)</dt><dd><tt>Return&nbsp;the&nbsp;l2&nbsp;norm&nbsp;of&nbsp;a,&nbsp;flattened&nbsp;out.<br>
&nbsp;<br>
Implemented&nbsp;as&nbsp;a&nbsp;separate&nbsp;function&nbsp;(not&nbsp;a&nbsp;call&nbsp;to&nbsp;<a href="#-norm">norm</a>()&nbsp;for&nbsp;speed).</tt></dd></dl>
 <dl><dt><a name="-levypdf"><strong>levypdf</strong></a>(x, gamma, alpha)</dt><dd><tt>Returm&nbsp;the&nbsp;levy&nbsp;pdf&nbsp;evaluated&nbsp;at&nbsp;x&nbsp;for&nbsp;params&nbsp;gamma,&nbsp;alpha</tt></dd></dl>
 <dl><dt><a name="-liaupunov"><strong>liaupunov</strong></a>(x, fprime)</dt><dd><tt>x&nbsp;is&nbsp;a&nbsp;very&nbsp;long&nbsp;trajectory&nbsp;from&nbsp;a&nbsp;map,&nbsp;and&nbsp;fprime&nbsp;returns&nbsp;the<br>
derivative&nbsp;of&nbsp;x.&nbsp;&nbsp;Return&nbsp;lambda&nbsp;=&nbsp;1/n\sum&nbsp;ln|fprime(x_i)|.&nbsp;&nbsp;See&nbsp;Sec<br>
10.5&nbsp;Strogatz&nbsp;(1994)"Nonlinear&nbsp;Dynamics&nbsp;and&nbsp;Chaos".</tt></dd></dl>
 <dl><dt><a name="-linspace"><strong>linspace</strong></a>(xmin, xmax, N)</dt></dl>
 <dl><dt><a name="-load"><strong>load</strong></a>(fname, comments<font color="#909090">='#'</font>, delimiter<font color="#909090">=None</font>, converters<font color="#909090">=None</font>, skiprows<font color="#909090">=0</font>, usecols<font color="#909090">=None</font>, unpack<font color="#909090">=False</font>)</dt><dd><tt>Load&nbsp;ASCII&nbsp;data&nbsp;from&nbsp;fname&nbsp;into&nbsp;an&nbsp;array&nbsp;and&nbsp;return&nbsp;the&nbsp;array.<br>
&nbsp;<br>
The&nbsp;data&nbsp;must&nbsp;be&nbsp;regular,&nbsp;same&nbsp;number&nbsp;of&nbsp;values&nbsp;in&nbsp;every&nbsp;row<br>
&nbsp;<br>
fname&nbsp;can&nbsp;be&nbsp;a&nbsp;filename&nbsp;or&nbsp;a&nbsp;file&nbsp;handle.&nbsp;&nbsp;Support&nbsp;for&nbsp;gzipped&nbsp;files&nbsp;is<br>
automatic,&nbsp;if&nbsp;the&nbsp;filename&nbsp;ends&nbsp;in&nbsp;.gz<br>
&nbsp;<br>
matfile&nbsp;data&nbsp;is&nbsp;not&nbsp;currently&nbsp;supported,&nbsp;but&nbsp;see<br>
Nigel&nbsp;Wade's&nbsp;matfile&nbsp;<a href="ftp://ion.le.ac.uk/matfile/matfile.tar.gz">ftp://ion.le.ac.uk/matfile/matfile.tar.gz</a><br>
&nbsp;<br>
Example&nbsp;usage:<br>
&nbsp;<br>
&nbsp;&nbsp;X&nbsp;=&nbsp;<a href="#-load">load</a>('test.dat')&nbsp;&nbsp;#&nbsp;data&nbsp;in&nbsp;two&nbsp;columns<br>
&nbsp;&nbsp;t&nbsp;=&nbsp;X[:,0]<br>
&nbsp;&nbsp;y&nbsp;=&nbsp;X[:,1]<br>
&nbsp;<br>
Alternatively,&nbsp;you&nbsp;can&nbsp;do&nbsp;the&nbsp;same&nbsp;with&nbsp;"unpack";&nbsp;see&nbsp;below<br>
&nbsp;<br>
&nbsp;&nbsp;X&nbsp;=&nbsp;<a href="#-load">load</a>('test.dat')&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;a&nbsp;matrix&nbsp;of&nbsp;data<br>
&nbsp;&nbsp;x&nbsp;=&nbsp;<a href="#-load">load</a>('test.dat')&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;a&nbsp;single&nbsp;column&nbsp;of&nbsp;data<br>
&nbsp;<br>
comments&nbsp;-&nbsp;the&nbsp;character&nbsp;used&nbsp;to&nbsp;indicate&nbsp;the&nbsp;start&nbsp;of&nbsp;a&nbsp;comment<br>
in&nbsp;the&nbsp;file<br>
&nbsp;<br>
delimiter&nbsp;is&nbsp;a&nbsp;string-like&nbsp;character&nbsp;used&nbsp;to&nbsp;seperate&nbsp;values&nbsp;in&nbsp;the<br>
file.&nbsp;If&nbsp;delimiter&nbsp;is&nbsp;unspecified&nbsp;or&nbsp;none,&nbsp;any&nbsp;whitespace&nbsp;string&nbsp;is<br>
a&nbsp;separator.<br>
&nbsp;<br>
converters,&nbsp;if&nbsp;not&nbsp;None,&nbsp;is&nbsp;a&nbsp;dictionary&nbsp;mapping&nbsp;column&nbsp;number&nbsp;to<br>
a&nbsp;function&nbsp;that&nbsp;will&nbsp;convert&nbsp;that&nbsp;column&nbsp;to&nbsp;a&nbsp;float.&nbsp;&nbsp;Eg,&nbsp;if<br>
column&nbsp;0&nbsp;is&nbsp;a&nbsp;date&nbsp;string:&nbsp;converters={0:datestr2num}<br>
&nbsp;<br>
skiprows&nbsp;is&nbsp;the&nbsp;number&nbsp;of&nbsp;rows&nbsp;from&nbsp;the&nbsp;top&nbsp;to&nbsp;skip<br>
&nbsp;<br>
usecols,&nbsp;if&nbsp;not&nbsp;None,&nbsp;is&nbsp;a&nbsp;sequence&nbsp;of&nbsp;integer&nbsp;column&nbsp;indexes&nbsp;to<br>
extract&nbsp;where&nbsp;0&nbsp;is&nbsp;the&nbsp;first&nbsp;column,&nbsp;eg&nbsp;usecols=(1,4,5)&nbsp;to&nbsp;extract<br>
just&nbsp;the&nbsp;2nd,&nbsp;5th&nbsp;and&nbsp;6th&nbsp;columns<br>
&nbsp;<br>
unpack,&nbsp;if&nbsp;True,&nbsp;will&nbsp;transpose&nbsp;the&nbsp;matrix&nbsp;allowing&nbsp;you&nbsp;to&nbsp;unpack<br>
into&nbsp;named&nbsp;arguments&nbsp;on&nbsp;the&nbsp;left&nbsp;hand&nbsp;side<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;t,y&nbsp;=&nbsp;<a href="#-load">load</a>('test.dat',&nbsp;unpack=True)&nbsp;#&nbsp;for&nbsp;&nbsp;two&nbsp;column&nbsp;data<br>
&nbsp;&nbsp;&nbsp;&nbsp;x,y,z&nbsp;=&nbsp;<a href="#-load">load</a>('somefile.dat',&nbsp;usecols=(3,5,7),&nbsp;unpack=True)<br>
&nbsp;<br>
See&nbsp;examples/load_demo.py&nbsp;which&nbsp;exeercises&nbsp;many&nbsp;of&nbsp;these&nbsp;options.</tt></dd></dl>
 <dl><dt><a name="-log2"><strong>log2</strong></a>(x, ln2<font color="#909090">=0.69314718055994529</font>)</dt><dd><tt>Return&nbsp;the&nbsp;log(x)&nbsp;in&nbsp;base&nbsp;2.<br>
&nbsp;<br>
This&nbsp;is&nbsp;a&nbsp;_slow_&nbsp;function&nbsp;but&nbsp;which&nbsp;is&nbsp;guaranteed&nbsp;to&nbsp;return&nbsp;the&nbsp;correct<br>
integer&nbsp;value&nbsp;if&nbsp;the&nbsp;input&nbsp;is&nbsp;an&nbsp;ineger&nbsp;exact&nbsp;power&nbsp;of&nbsp;2.</tt></dd></dl>
 <dl><dt><a name="-logspace"><strong>logspace</strong></a>(xmin, xmax, N)</dt></dl>
 <dl><dt><a name="-longest_contiguous_ones"><strong>longest_contiguous_ones</strong></a>(x)</dt><dd><tt>return&nbsp;the&nbsp;indicies&nbsp;of&nbsp;the&nbsp;longest&nbsp;stretch&nbsp;of&nbsp;contiguous&nbsp;ones&nbsp;in&nbsp;x,<br>
assuming&nbsp;x&nbsp;is&nbsp;a&nbsp;vector&nbsp;of&nbsp;zeros&nbsp;and&nbsp;ones.</tt></dd></dl>
 <dl><dt><a name="-longest_ones"><strong>longest_ones</strong></a>(x)</dt><dd><tt>return&nbsp;the&nbsp;indicies&nbsp;of&nbsp;the&nbsp;longest&nbsp;stretch&nbsp;of&nbsp;contiguous&nbsp;ones&nbsp;in&nbsp;x,<br>
assuming&nbsp;x&nbsp;is&nbsp;a&nbsp;vector&nbsp;of&nbsp;zeros&nbsp;and&nbsp;ones.<br>
&nbsp;<br>
If&nbsp;there&nbsp;are&nbsp;two&nbsp;equally&nbsp;long&nbsp;stretches,&nbsp;pick&nbsp;the&nbsp;first</tt></dd></dl>
 <dl><dt><a name="-matrixmultiply"><strong>matrixmultiply</strong></a> = dot(...)</dt><dd><tt><a href="#-dot">dot</a>(a,b)<br>
Returns&nbsp;the&nbsp;dot&nbsp;product&nbsp;of&nbsp;a&nbsp;and&nbsp;b&nbsp;for&nbsp;arrays&nbsp;of&nbsp;floating&nbsp;point&nbsp;types.<br>
Like&nbsp;the&nbsp;generic&nbsp;numpy&nbsp;equivalent&nbsp;the&nbsp;product&nbsp;sum&nbsp;is&nbsp;over<br>
the&nbsp;last&nbsp;dimension&nbsp;of&nbsp;a&nbsp;and&nbsp;the&nbsp;second-to-last&nbsp;dimension&nbsp;of&nbsp;b.<br>
NB:&nbsp;The&nbsp;first&nbsp;argument&nbsp;is&nbsp;not&nbsp;conjugated.</tt></dd></dl>
 <dl><dt><a name="-mean"><strong>mean</strong></a>(x, dim<font color="#909090">=None</font>)</dt></dl>
 <dl><dt><a name="-mean_flat"><strong>mean_flat</strong></a>(a)</dt><dd><tt>Return&nbsp;the&nbsp;mean&nbsp;of&nbsp;all&nbsp;the&nbsp;elements&nbsp;of&nbsp;a,&nbsp;flattened&nbsp;out.</tt></dd></dl>
 <dl><dt><a name="-meshgrid"><strong>meshgrid</strong></a>(x, y)</dt><dd><tt>For&nbsp;vectors&nbsp;x,&nbsp;y&nbsp;with&nbsp;lengths&nbsp;Nx=len(x)&nbsp;and&nbsp;Ny=len(y),&nbsp;return&nbsp;X,&nbsp;Y<br>
where&nbsp;X&nbsp;and&nbsp;Y&nbsp;are&nbsp;(Ny,&nbsp;Nx)&nbsp;shaped&nbsp;arrays&nbsp;with&nbsp;the&nbsp;elements&nbsp;of&nbsp;x<br>
and&nbsp;y&nbsp;repeated&nbsp;to&nbsp;fill&nbsp;the&nbsp;matrix<br>
&nbsp;<br>
EG,<br>
&nbsp;<br>
&nbsp;&nbsp;[X,&nbsp;Y]&nbsp;=&nbsp;<a href="#-meshgrid">meshgrid</a>([1,2,3],&nbsp;[4,5,6,7])<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;X&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;3<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;3<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;3<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;3<br>
&nbsp;<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;Y&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;4<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;5<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp;&nbsp;6<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7&nbsp;&nbsp;&nbsp;7&nbsp;&nbsp;&nbsp;7</tt></dd></dl>
 <dl><dt><a name="-mfuncC"><strong>mfuncC</strong></a>(f, x)</dt><dd><tt><a href="#-mfuncC">mfuncC</a>(f,&nbsp;x)&nbsp;:&nbsp;matrix&nbsp;function&nbsp;with&nbsp;possibly&nbsp;complex&nbsp;eigenvalues.<br>
Note:&nbsp;Numeric&nbsp;defines&nbsp;(v,u)&nbsp;=&nbsp;eig(x)&nbsp;=&gt;&nbsp;x*u.T&nbsp;=&nbsp;u.T&nbsp;*&nbsp;Diag(v)<br>
This&nbsp;function&nbsp;is&nbsp;needed&nbsp;by&nbsp;sqrtm&nbsp;and&nbsp;allows&nbsp;further&nbsp;functions.</tt></dd></dl>
 <dl><dt><a name="-movavg"><strong>movavg</strong></a>(x, n)</dt><dd><tt>compute&nbsp;the&nbsp;len(n)&nbsp;moving&nbsp;average&nbsp;of&nbsp;x</tt></dd></dl>
 <dl><dt><a name="-norm"><strong>norm</strong></a>(x, y<font color="#909090">=2</font>)</dt><dd><tt>Norm&nbsp;of&nbsp;a&nbsp;matrix&nbsp;or&nbsp;a&nbsp;vector&nbsp;according&nbsp;to&nbsp;Matlab.<br>
The&nbsp;description&nbsp;is&nbsp;taken&nbsp;from&nbsp;Matlab:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;matrices...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(X)&nbsp;is&nbsp;the&nbsp;largest&nbsp;singular&nbsp;value&nbsp;of&nbsp;X,&nbsp;max(svd(X)).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(X,2)&nbsp;is&nbsp;the&nbsp;same&nbsp;as&nbsp;NORM(X).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(X,1)&nbsp;is&nbsp;the&nbsp;1-norm&nbsp;of&nbsp;X,&nbsp;the&nbsp;largest&nbsp;column&nbsp;sum,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;max(sum(abs((X)))).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(X,inf)&nbsp;is&nbsp;the&nbsp;infinity&nbsp;norm&nbsp;of&nbsp;X,&nbsp;the&nbsp;largest&nbsp;row&nbsp;sum,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;max(sum(abs((X')))).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(X,'fro')&nbsp;is&nbsp;the&nbsp;Frobenius&nbsp;norm,&nbsp;sqrt(sum(diag(X'*X))).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(X,P)&nbsp;is&nbsp;available&nbsp;for&nbsp;matrix&nbsp;X&nbsp;only&nbsp;if&nbsp;P&nbsp;is&nbsp;1,&nbsp;2,&nbsp;inf&nbsp;or&nbsp;'fro'.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;vectors...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(V,P)&nbsp;=&nbsp;sum(abs(V).^P)^(1/P).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(V)&nbsp;=&nbsp;<a href="#-norm">norm</a>(V,2).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(V,inf)&nbsp;=&nbsp;max(abs(V)).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NORM(V,-inf)&nbsp;=&nbsp;min(abs(V)).</tt></dd></dl>
 <dl><dt><a name="-normpdf"><strong>normpdf</strong></a>(x, *args)</dt><dd><tt>Return&nbsp;the&nbsp;normal&nbsp;pdf&nbsp;evaluated&nbsp;at&nbsp;x;&nbsp;args&nbsp;provides&nbsp;mu,&nbsp;sigma</tt></dd></dl>
 <dl><dt><a name="-orth"><strong>orth</strong></a>(A)</dt><dd><tt>Orthogonalization&nbsp;procedure&nbsp;by&nbsp;Matlab.<br>
The&nbsp;description&nbsp;is&nbsp;taken&nbsp;from&nbsp;its&nbsp;help:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Q&nbsp;=&nbsp;ORTH(A)&nbsp;is&nbsp;an&nbsp;orthonormal&nbsp;basis&nbsp;for&nbsp;the&nbsp;range&nbsp;of&nbsp;A.<br>
&nbsp;&nbsp;&nbsp;&nbsp;That&nbsp;is,&nbsp;Q'*Q&nbsp;=&nbsp;I,&nbsp;the&nbsp;columns&nbsp;of&nbsp;Q&nbsp;span&nbsp;the&nbsp;same&nbsp;space&nbsp;as&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;columns&nbsp;of&nbsp;A,&nbsp;and&nbsp;the&nbsp;number&nbsp;of&nbsp;columns&nbsp;of&nbsp;Q&nbsp;is&nbsp;the&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;rank&nbsp;of&nbsp;A.</tt></dd></dl>
 <dl><dt><a name="-polyfit"><strong>polyfit</strong></a>(x, y, N)</dt><dd><tt>Do&nbsp;a&nbsp;best&nbsp;fit&nbsp;polynomial&nbsp;of&nbsp;order&nbsp;N&nbsp;of&nbsp;y&nbsp;to&nbsp;x.&nbsp;&nbsp;Return&nbsp;value&nbsp;is&nbsp;a<br>
vector&nbsp;of&nbsp;polynomial&nbsp;coefficients&nbsp;[pk&nbsp;...&nbsp;p1&nbsp;p0].&nbsp;&nbsp;Eg,&nbsp;for&nbsp;N=2<br>
&nbsp;<br>
&nbsp;&nbsp;p2*x0^2&nbsp;+&nbsp;&nbsp;p1*x0&nbsp;+&nbsp;p0&nbsp;=&nbsp;y1<br>
&nbsp;&nbsp;p2*x1^2&nbsp;+&nbsp;&nbsp;p1*x1&nbsp;+&nbsp;p0&nbsp;=&nbsp;y1<br>
&nbsp;&nbsp;p2*x2^2&nbsp;+&nbsp;&nbsp;p1*x2&nbsp;+&nbsp;p0&nbsp;=&nbsp;y2<br>
&nbsp;&nbsp;.....<br>
&nbsp;&nbsp;p2*xk^2&nbsp;+&nbsp;&nbsp;p1*xk&nbsp;+&nbsp;p0&nbsp;=&nbsp;yk<br>
&nbsp;&nbsp;<br>
&nbsp;&nbsp;<br>
Method:&nbsp;if&nbsp;X&nbsp;is&nbsp;a&nbsp;the&nbsp;Vandermonde&nbsp;Matrix&nbsp;computed&nbsp;from&nbsp;x&nbsp;(see<br>
<a href="http://mathworld.wolfram.com/VandermondeMatrix.html">http://mathworld.wolfram.com/VandermondeMatrix.html</a>),&nbsp;then&nbsp;the<br>
polynomial&nbsp;least&nbsp;squares&nbsp;solution&nbsp;is&nbsp;given&nbsp;by&nbsp;the&nbsp;'p'&nbsp;in<br>
&nbsp;<br>
&nbsp;&nbsp;X*p&nbsp;=&nbsp;y<br>
&nbsp;<br>
where&nbsp;X&nbsp;is&nbsp;a&nbsp;len(x)&nbsp;x&nbsp;N+1&nbsp;matrix,&nbsp;p&nbsp;is&nbsp;a&nbsp;N+1&nbsp;length&nbsp;vector,&nbsp;and&nbsp;y<br>
is&nbsp;a&nbsp;len(x)&nbsp;x&nbsp;1&nbsp;vector<br>
&nbsp;<br>
This&nbsp;equation&nbsp;can&nbsp;be&nbsp;solved&nbsp;as<br>
&nbsp;<br>
&nbsp;&nbsp;p&nbsp;=&nbsp;(XT*X)^-1&nbsp;*&nbsp;XT&nbsp;*&nbsp;y<br>
&nbsp;<br>
where&nbsp;XT&nbsp;is&nbsp;the&nbsp;transpose&nbsp;of&nbsp;X&nbsp;and&nbsp;-1&nbsp;denotes&nbsp;the&nbsp;inverse.<br>
&nbsp;<br>
For&nbsp;more&nbsp;info,&nbsp;see<br>
<a href="http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html">http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html</a>,<br>
but&nbsp;note&nbsp;that&nbsp;the&nbsp;k's&nbsp;and&nbsp;n's&nbsp;in&nbsp;the&nbsp;superscripts&nbsp;and&nbsp;subscripts<br>
on&nbsp;that&nbsp;page.&nbsp;&nbsp;The&nbsp;linear&nbsp;algebra&nbsp;is&nbsp;correct,&nbsp;however.<br>
&nbsp;<br>
See&nbsp;also&nbsp;polyval</tt></dd></dl>
 <dl><dt><a name="-polyval"><strong>polyval</strong></a>(p, x)</dt><dd><tt>y&nbsp;=&nbsp;<a href="#-polyval">polyval</a>(p,x)<br>
&nbsp;<br>
p&nbsp;is&nbsp;a&nbsp;vector&nbsp;of&nbsp;polynomial&nbsp;coeffients&nbsp;and&nbsp;y&nbsp;is&nbsp;the&nbsp;polynomial<br>
evaluated&nbsp;at&nbsp;x.<br>
&nbsp;<br>
Example&nbsp;code&nbsp;to&nbsp;remove&nbsp;a&nbsp;polynomial&nbsp;(quadratic)&nbsp;trend&nbsp;from&nbsp;y:<br>
&nbsp;<br>
&nbsp;&nbsp;p&nbsp;=&nbsp;<a href="#-polyfit">polyfit</a>(x,&nbsp;y,&nbsp;2)<br>
&nbsp;&nbsp;trend&nbsp;=&nbsp;<a href="#-polyval">polyval</a>(p,&nbsp;x)<br>
&nbsp;&nbsp;resid&nbsp;=&nbsp;y&nbsp;-&nbsp;trend<br>
&nbsp;<br>
See&nbsp;also&nbsp;polyfit</tt></dd></dl>
 <dl><dt><a name="-prctile"><strong>prctile</strong></a>(x, p<font color="#909090">=(0.0, 25.0, 50.0, 75.0, 100.0)</font>)</dt><dd><tt>Return&nbsp;the&nbsp;percentiles&nbsp;of&nbsp;x.&nbsp;&nbsp;p&nbsp;can&nbsp;either&nbsp;be&nbsp;a&nbsp;sequence&nbsp;of<br>
percentil&nbsp;values&nbsp;or&nbsp;a&nbsp;scalar.&nbsp;&nbsp;If&nbsp;p&nbsp;is&nbsp;a&nbsp;sequence&nbsp;the&nbsp;i-th&nbsp;element<br>
of&nbsp;the&nbsp;return&nbsp;sequence&nbsp;is&nbsp;the&nbsp;p(i)-th&nbsp;percentile&nbsp;of&nbsp;x</tt></dd></dl>
 <dl><dt><a name="-prepca"><strong>prepca</strong></a>(P, frac<font color="#909090">=0</font>)</dt><dd><tt>Compute&nbsp;the&nbsp;principal&nbsp;components&nbsp;of&nbsp;P.&nbsp;&nbsp;P&nbsp;is&nbsp;a&nbsp;numVars&nbsp;x<br>
numObservations&nbsp;numeric&nbsp;array.&nbsp;&nbsp;frac&nbsp;is&nbsp;the&nbsp;minimum&nbsp;fraction&nbsp;of<br>
variance&nbsp;that&nbsp;a&nbsp;component&nbsp;must&nbsp;contain&nbsp;to&nbsp;be&nbsp;included<br>
&nbsp;<br>
Return&nbsp;value&nbsp;are<br>
Pcomponents&nbsp;:&nbsp;a&nbsp;num&nbsp;components&nbsp;x&nbsp;num&nbsp;observations&nbsp;numeric&nbsp;array<br>
Trans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;the&nbsp;weights&nbsp;matrix,&nbsp;ie,&nbsp;Pcomponents&nbsp;=&nbsp;Trans*P<br>
fracVar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;the&nbsp;fraction&nbsp;of&nbsp;the&nbsp;variance&nbsp;accounted&nbsp;for&nbsp;by&nbsp;each<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;component&nbsp;returned</tt></dd></dl>
 <dl><dt><a name="-psd"><strong>psd</strong></a>(x, NFFT<font color="#909090">=256</font>, Fs<font color="#909090">=2</font>, detrend<font color="#909090">=&lt;function detrend_none&gt;</font>, window<font color="#909090">=&lt;function window_hanning&gt;</font>, noverlap<font color="#909090">=0</font>)</dt><dd><tt>The&nbsp;power&nbsp;spectral&nbsp;density&nbsp;by&nbsp;Welches&nbsp;average&nbsp;periodogram&nbsp;method.<br>
The&nbsp;vector&nbsp;x&nbsp;is&nbsp;divided&nbsp;into&nbsp;NFFT&nbsp;length&nbsp;segments.&nbsp;&nbsp;Each&nbsp;segment<br>
is&nbsp;detrended&nbsp;by&nbsp;function&nbsp;detrend&nbsp;and&nbsp;windowed&nbsp;by&nbsp;function&nbsp;window.<br>
noperlap&nbsp;gives&nbsp;the&nbsp;length&nbsp;of&nbsp;the&nbsp;overlap&nbsp;between&nbsp;segments.&nbsp;&nbsp;The<br>
absolute(fft(segment))**2&nbsp;of&nbsp;each&nbsp;segment&nbsp;are&nbsp;averaged&nbsp;to&nbsp;compute&nbsp;Pxx,<br>
with&nbsp;a&nbsp;scaling&nbsp;to&nbsp;correct&nbsp;for&nbsp;power&nbsp;loss&nbsp;due&nbsp;to&nbsp;windowing.&nbsp;&nbsp;Fs&nbsp;is<br>
the&nbsp;sampling&nbsp;frequency.<br>
&nbsp;<br>
--&nbsp;NFFT&nbsp;must&nbsp;be&nbsp;a&nbsp;power&nbsp;of&nbsp;2<br>
--&nbsp;detrend&nbsp;is&nbsp;a&nbsp;functions,&nbsp;unlike&nbsp;in&nbsp;matlab&nbsp;where&nbsp;it&nbsp;is&nbsp;a&nbsp;vector.<br>
--&nbsp;window&nbsp;can&nbsp;be&nbsp;a&nbsp;function&nbsp;or&nbsp;a&nbsp;vector&nbsp;of&nbsp;length&nbsp;NFFT.&nbsp;To&nbsp;create&nbsp;window<br>
&nbsp;&nbsp;&nbsp;vectors&nbsp;see&nbsp;numpy.blackman,&nbsp;numpy.hamming,&nbsp;numpy.bartlett,<br>
&nbsp;&nbsp;&nbsp;scipy.signal,&nbsp;scipy.signal.get_window&nbsp;etc.<br>
--&nbsp;if&nbsp;length&nbsp;x&nbsp;&lt;&nbsp;NFFT,&nbsp;it&nbsp;will&nbsp;be&nbsp;zero&nbsp;padded&nbsp;to&nbsp;NFFT<br>
&nbsp;<br>
&nbsp;<br>
Returns&nbsp;the&nbsp;tuple&nbsp;Pxx,&nbsp;freqs<br>
&nbsp;<br>
Refs:<br>
&nbsp;&nbsp;Bendat&nbsp;&amp;&nbsp;Piersol&nbsp;--&nbsp;Random&nbsp;Data:&nbsp;Analysis&nbsp;and&nbsp;Measurement<br>
&nbsp;&nbsp;&nbsp;&nbsp;Procedures,&nbsp;John&nbsp;Wiley&nbsp;&amp;&nbsp;Sons&nbsp;(1986)</tt></dd></dl>
 <dl><dt><a name="-rand"><strong>rand</strong></a>(...)</dt><dd><tt>Return&nbsp;an&nbsp;array&nbsp;of&nbsp;the&nbsp;given&nbsp;dimensions&nbsp;which&nbsp;is&nbsp;initialized&nbsp;to&nbsp;<br>
random&nbsp;numbers&nbsp;from&nbsp;a&nbsp;uniform&nbsp;distribution&nbsp;in&nbsp;the&nbsp;range&nbsp;[0,1).<br>
&nbsp;<br>
<a href="#-rand">rand</a>(d0,&nbsp;d1,&nbsp;...,&nbsp;dn)&nbsp;-&gt;&nbsp;random&nbsp;values<br>
&nbsp;<br>
Note:&nbsp;&nbsp;This&nbsp;is&nbsp;a&nbsp;convenience&nbsp;function.&nbsp;If&nbsp;you&nbsp;want&nbsp;an<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interface&nbsp;that&nbsp;takes&nbsp;a&nbsp;tuple&nbsp;as&nbsp;the&nbsp;first&nbsp;argument<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;use&nbsp;numpy.random.random_sample(shape_tuple).</tt></dd></dl>
 <dl><dt><a name="-rank"><strong>rank</strong></a>(x)</dt><dd><tt>Returns&nbsp;the&nbsp;rank&nbsp;of&nbsp;a&nbsp;matrix.<br>
The&nbsp;rank&nbsp;is&nbsp;understood&nbsp;here&nbsp;as&nbsp;the&nbsp;an&nbsp;estimation&nbsp;of&nbsp;the&nbsp;number&nbsp;of<br>
linearly&nbsp;independent&nbsp;rows&nbsp;or&nbsp;columns&nbsp;(depending&nbsp;on&nbsp;the&nbsp;size&nbsp;of&nbsp;the<br>
matrix).<br>
Note&nbsp;that&nbsp;numerix.mlab.<a href="#-rank">rank</a>()&nbsp;is&nbsp;not&nbsp;equivalent&nbsp;to&nbsp;Matlab's&nbsp;rank.<br>
This&nbsp;function&nbsp;is!</tt></dd></dl>
 <dl><dt><a name="-rem"><strong>rem</strong></a>(x, y)</dt><dd><tt>Remainder&nbsp;after&nbsp;division.<br>
<a href="#-rem">rem</a>(x,y)&nbsp;is&nbsp;equivalent&nbsp;to&nbsp;x&nbsp;-&nbsp;y.*<a href="#-fix">fix</a>(x./y)&nbsp;in&nbsp;case&nbsp;y&nbsp;is&nbsp;not&nbsp;zero.<br>
By&nbsp;convention,&nbsp;<a href="#-rem">rem</a>(x,0)&nbsp;returns&nbsp;None.<br>
We&nbsp;keep&nbsp;the&nbsp;convention&nbsp;by&nbsp;Matlab:<br>
"The&nbsp;input&nbsp;x&nbsp;and&nbsp;y&nbsp;must&nbsp;be&nbsp;real&nbsp;arrays&nbsp;of&nbsp;the&nbsp;same&nbsp;size,&nbsp;or&nbsp;real&nbsp;scalars."</tt></dd></dl>
 <dl><dt><a name="-rk4"><strong>rk4</strong></a>(derivs, y0, t)</dt><dd><tt>Integrate&nbsp;1D&nbsp;or&nbsp;ND&nbsp;system&nbsp;of&nbsp;ODEs&nbsp;from&nbsp;initial&nbsp;state&nbsp;y0&nbsp;at&nbsp;sample<br>
times&nbsp;t.&nbsp;&nbsp;derivs&nbsp;returns&nbsp;the&nbsp;derivative&nbsp;of&nbsp;the&nbsp;system&nbsp;and&nbsp;has&nbsp;the<br>
signature<br>
&nbsp;<br>
&nbsp;dy&nbsp;=&nbsp;derivs(yi,&nbsp;ti)<br>
&nbsp;<br>
Example&nbsp;1&nbsp;:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;2D&nbsp;system<br>
&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Numeric&nbsp;solution<br>
&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;derivs6(x,t):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d1&nbsp;=&nbsp;&nbsp;x[0]&nbsp;+&nbsp;2*x[1]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d2&nbsp;=&nbsp;&nbsp;-3*x[0]&nbsp;+&nbsp;4*x[1]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(d1,&nbsp;d2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;dt&nbsp;=&nbsp;0.0005<br>
&nbsp;&nbsp;&nbsp;&nbsp;t&nbsp;=&nbsp;arange(0.0,&nbsp;2.0,&nbsp;dt)<br>
&nbsp;&nbsp;&nbsp;&nbsp;y0&nbsp;=&nbsp;(1,2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;yout&nbsp;=&nbsp;<a href="#-rk4">rk4</a>(derivs6,&nbsp;y0,&nbsp;t)<br>
&nbsp;<br>
Example&nbsp;2:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;##&nbsp;1D&nbsp;system<br>
&nbsp;&nbsp;&nbsp;&nbsp;alpha&nbsp;=&nbsp;2<br>
&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;derivs(x,t):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-alpha*x&nbsp;+&nbsp;exp(-t)<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;y0&nbsp;=&nbsp;1<br>
&nbsp;&nbsp;&nbsp;&nbsp;yout&nbsp;=&nbsp;<a href="#-rk4">rk4</a>(derivs,&nbsp;y0,&nbsp;t)</tt></dd></dl>
 <dl><dt><a name="-rms_flat"><strong>rms_flat</strong></a>(a)</dt><dd><tt>Return&nbsp;the&nbsp;root&nbsp;mean&nbsp;square&nbsp;of&nbsp;all&nbsp;the&nbsp;elements&nbsp;of&nbsp;a,&nbsp;flattened&nbsp;out.</tt></dd></dl>
 <dl><dt><a name="-save"><strong>save</strong></a>(fname, X, fmt<font color="#909090">='%.18e'</font>, delimiter<font color="#909090">=' '</font>)</dt><dd><tt>Save&nbsp;the&nbsp;data&nbsp;in&nbsp;X&nbsp;to&nbsp;file&nbsp;fname&nbsp;using&nbsp;fmt&nbsp;string&nbsp;to&nbsp;convert&nbsp;the<br>
data&nbsp;to&nbsp;strings<br>
&nbsp;<br>
fname&nbsp;can&nbsp;be&nbsp;a&nbsp;filename&nbsp;or&nbsp;a&nbsp;file&nbsp;handle.&nbsp;&nbsp;If&nbsp;the&nbsp;filename&nbsp;ends&nbsp;in&nbsp;.gz,<br>
the&nbsp;file&nbsp;is&nbsp;automatically&nbsp;saved&nbsp;in&nbsp;compressed&nbsp;gzip&nbsp;format.&nbsp;&nbsp;The&nbsp;<a href="#-load">load</a>()<br>
command&nbsp;understands&nbsp;gzipped&nbsp;files&nbsp;transparently.<br>
&nbsp;<br>
Example&nbsp;usage:<br>
&nbsp;<br>
<a href="#-save">save</a>('test.out',&nbsp;X)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;X&nbsp;is&nbsp;an&nbsp;array<br>
<a href="#-save">save</a>('test1.out',&nbsp;(x,y,z))&nbsp;&nbsp;#&nbsp;x,y,z&nbsp;equal&nbsp;sized&nbsp;1D&nbsp;arrays<br>
<a href="#-save">save</a>('test2.out',&nbsp;x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;x&nbsp;is&nbsp;1D<br>
<a href="#-save">save</a>('test3.out',&nbsp;x,&nbsp;fmt='%1.4e')&nbsp;&nbsp;#&nbsp;use&nbsp;exponential&nbsp;notation<br>
&nbsp;<br>
delimiter&nbsp;is&nbsp;used&nbsp;to&nbsp;separate&nbsp;the&nbsp;fields,&nbsp;eg&nbsp;delimiter&nbsp;','&nbsp;for<br>
comma-separated&nbsp;values</tt></dd></dl>
 <dl><dt><a name="-segments_intersect"><strong>segments_intersect</strong></a>(s1, s2)</dt><dd><tt>Return&nbsp;True&nbsp;if&nbsp;s1&nbsp;and&nbsp;s2&nbsp;intersect.<br>
s1&nbsp;and&nbsp;s2&nbsp;are&nbsp;defines&nbsp;as<br>
&nbsp;<br>
s1:&nbsp;(x1,&nbsp;y1),&nbsp;(x2,&nbsp;y2)<br>
s2:&nbsp;(x3,&nbsp;y3),&nbsp;(x4,&nbsp;y4)</tt></dd></dl>
 <dl><dt><a name="-slopes"><strong>slopes</strong></a>(x, y)</dt><dd><tt>SLOPES&nbsp;calculate&nbsp;the&nbsp;slope&nbsp;y'(x)&nbsp;Given&nbsp;data&nbsp;vectors&nbsp;X&nbsp;and&nbsp;Y&nbsp;SLOPES<br>
calculates&nbsp;Y'(X),&nbsp;i.e&nbsp;the&nbsp;slope&nbsp;of&nbsp;a&nbsp;curve&nbsp;Y(X).&nbsp;The&nbsp;slope&nbsp;is<br>
estimated&nbsp;using&nbsp;the&nbsp;slope&nbsp;obtained&nbsp;from&nbsp;that&nbsp;of&nbsp;a&nbsp;parabola&nbsp;through<br>
any&nbsp;three&nbsp;consecutive&nbsp;points.<br>
&nbsp;<br>
This&nbsp;method&nbsp;should&nbsp;be&nbsp;superior&nbsp;to&nbsp;that&nbsp;described&nbsp;in&nbsp;the&nbsp;appendix<br>
of&nbsp;A&nbsp;CONSISTENTLY&nbsp;WELL&nbsp;BEHAVED&nbsp;METHOD&nbsp;OF&nbsp;INTERPOLATION&nbsp;by&nbsp;Russel<br>
W.&nbsp;Stineman&nbsp;(Creative&nbsp;Computing&nbsp;July&nbsp;1980)&nbsp;in&nbsp;at&nbsp;least&nbsp;one&nbsp;aspect:<br>
&nbsp;<br>
Circles&nbsp;for&nbsp;interpolation&nbsp;demand&nbsp;a&nbsp;known&nbsp;aspect&nbsp;ratio&nbsp;between&nbsp;x-<br>
and&nbsp;y-values.&nbsp;&nbsp;For&nbsp;many&nbsp;functions,&nbsp;however,&nbsp;the&nbsp;abscissa&nbsp;are&nbsp;given<br>
in&nbsp;different&nbsp;dimensions,&nbsp;so&nbsp;an&nbsp;aspect&nbsp;ratio&nbsp;is&nbsp;completely<br>
arbitrary.<br>
&nbsp;<br>
The&nbsp;parabola&nbsp;method&nbsp;gives&nbsp;very&nbsp;similar&nbsp;results&nbsp;to&nbsp;the&nbsp;circle<br>
method&nbsp;for&nbsp;most&nbsp;regular&nbsp;cases&nbsp;but&nbsp;behaves&nbsp;much&nbsp;better&nbsp;in&nbsp;special<br>
cases<br>
&nbsp;<br>
Norbert&nbsp;Nemec,&nbsp;Institute&nbsp;of&nbsp;Theoretical&nbsp;Physics,&nbsp;University&nbsp;or<br>
Regensburg,&nbsp;April&nbsp;2006&nbsp;Norbert.Nemec&nbsp;at&nbsp;physik.uni-regensburg.de<br>
&nbsp;<br>
(inspired&nbsp;by&nbsp;a&nbsp;original&nbsp;implementation&nbsp;by&nbsp;Halldor&nbsp;Bjornsson,<br>
Icelandic&nbsp;Meteorological&nbsp;Office,&nbsp;March&nbsp;2006&nbsp;halldor&nbsp;at&nbsp;vedur.is)</tt></dd></dl>
 <dl><dt><a name="-specgram"><strong>specgram</strong></a>(x, NFFT<font color="#909090">=256</font>, Fs<font color="#909090">=2</font>, detrend<font color="#909090">=&lt;function detrend_none&gt;</font>, window<font color="#909090">=&lt;function window_hanning&gt;</font>, noverlap<font color="#909090">=128</font>)</dt><dd><tt>Compute&nbsp;a&nbsp;spectrogram&nbsp;of&nbsp;data&nbsp;in&nbsp;x.&nbsp;&nbsp;Data&nbsp;are&nbsp;split&nbsp;into&nbsp;NFFT<br>
length&nbsp;segements&nbsp;and&nbsp;the&nbsp;PSD&nbsp;of&nbsp;each&nbsp;section&nbsp;is&nbsp;computed.&nbsp;&nbsp;The<br>
windowing&nbsp;function&nbsp;window&nbsp;is&nbsp;applied&nbsp;to&nbsp;each&nbsp;segment,&nbsp;and&nbsp;the<br>
amount&nbsp;of&nbsp;overlap&nbsp;of&nbsp;each&nbsp;segment&nbsp;is&nbsp;specified&nbsp;with&nbsp;noverlap.<br>
&nbsp;<br>
window&nbsp;can&nbsp;be&nbsp;a&nbsp;function&nbsp;or&nbsp;a&nbsp;vector&nbsp;of&nbsp;length&nbsp;NFFT.&nbsp;To&nbsp;create<br>
window&nbsp;vectors&nbsp;see&nbsp;numpy.blackman,&nbsp;numpy.hamming,&nbsp;numpy.bartlett,<br>
scipy.signal,&nbsp;scipy.signal.get_window&nbsp;etc.<br>
&nbsp;<br>
&nbsp;<br>
See&nbsp;pdf&nbsp;for&nbsp;more&nbsp;info.<br>
&nbsp;<br>
If&nbsp;x&nbsp;is&nbsp;real&nbsp;(i.e.&nbsp;non-Complex)&nbsp;only&nbsp;the&nbsp;positive&nbsp;spectrum&nbsp;is<br>
given.&nbsp;&nbsp;If&nbsp;x&nbsp;is&nbsp;Complex&nbsp;then&nbsp;the&nbsp;complete&nbsp;spectrum&nbsp;is&nbsp;given.<br>
&nbsp;<br>
The&nbsp;returned&nbsp;times&nbsp;are&nbsp;the&nbsp;midpoints&nbsp;of&nbsp;the&nbsp;intervals&nbsp;over&nbsp;which<br>
the&nbsp;ffts&nbsp;are&nbsp;calculated</tt></dd></dl>
 <dl><dt><a name="-sqrtm"><strong>sqrtm</strong></a>(x)</dt><dd><tt>Returns&nbsp;the&nbsp;square&nbsp;root&nbsp;of&nbsp;a&nbsp;square&nbsp;matrix.<br>
This&nbsp;means&nbsp;that&nbsp;s=<a href="#-sqrtm">sqrtm</a>(x)&nbsp;implies&nbsp;s*s&nbsp;=&nbsp;x.<br>
Note&nbsp;that&nbsp;s&nbsp;and&nbsp;x&nbsp;are&nbsp;matrices.</tt></dd></dl>
 <dl><dt><a name="-stineman_interp"><strong>stineman_interp</strong></a>(xi, x, y, yp<font color="#909090">=None</font>)</dt><dd><tt>STINEMAN_INTERP&nbsp;Well&nbsp;behaved&nbsp;data&nbsp;interpolation.&nbsp;&nbsp;Given&nbsp;data<br>
vectors&nbsp;X&nbsp;and&nbsp;Y,&nbsp;the&nbsp;slope&nbsp;vector&nbsp;YP&nbsp;and&nbsp;a&nbsp;new&nbsp;abscissa&nbsp;vector&nbsp;XI<br>
the&nbsp;function&nbsp;<a href="#-stineman_interp">stineman_interp</a>(xi,x,y,yp)&nbsp;uses&nbsp;Stineman<br>
interpolation&nbsp;to&nbsp;calculate&nbsp;a&nbsp;vector&nbsp;YI&nbsp;corresponding&nbsp;to&nbsp;XI.<br>
&nbsp;<br>
Here's&nbsp;an&nbsp;example&nbsp;that&nbsp;generates&nbsp;a&nbsp;coarse&nbsp;sine&nbsp;curve,&nbsp;then<br>
interpolates&nbsp;over&nbsp;a&nbsp;finer&nbsp;abscissa:<br>
&nbsp;<br>
&nbsp;&nbsp;x&nbsp;=&nbsp;<a href="#-linspace">linspace</a>(0,2*pi,20);&nbsp;&nbsp;y&nbsp;=&nbsp;sin(x);&nbsp;yp&nbsp;=&nbsp;cos(x)<br>
&nbsp;&nbsp;xi&nbsp;=&nbsp;<a href="#-linspace">linspace</a>(0,2*pi,40);<br>
&nbsp;&nbsp;yi&nbsp;=&nbsp;<a href="#-stineman_interp">stineman_interp</a>(xi,x,y,yp);<br>
&nbsp;&nbsp;plot(x,y,'o',xi,yi)<br>
&nbsp;<br>
The&nbsp;interpolation&nbsp;method&nbsp;is&nbsp;described&nbsp;in&nbsp;the&nbsp;article&nbsp;A<br>
CONSISTENTLY&nbsp;WELL&nbsp;BEHAVED&nbsp;METHOD&nbsp;OF&nbsp;INTERPOLATION&nbsp;by&nbsp;Russell<br>
W.&nbsp;Stineman.&nbsp;The&nbsp;article&nbsp;appeared&nbsp;in&nbsp;the&nbsp;July&nbsp;1980&nbsp;issue&nbsp;of<br>
Creative&nbsp;computing&nbsp;with&nbsp;a&nbsp;note&nbsp;from&nbsp;the&nbsp;editor&nbsp;stating&nbsp;that&nbsp;while<br>
they&nbsp;were<br>
&nbsp;<br>
&nbsp;&nbsp;not&nbsp;an&nbsp;academic&nbsp;journal&nbsp;but&nbsp;once&nbsp;in&nbsp;a&nbsp;while&nbsp;something&nbsp;serious<br>
&nbsp;&nbsp;and&nbsp;original&nbsp;comes&nbsp;in&nbsp;adding&nbsp;that&nbsp;this&nbsp;was<br>
&nbsp;&nbsp;"apparently&nbsp;a&nbsp;real&nbsp;solution"&nbsp;to&nbsp;a&nbsp;well&nbsp;known&nbsp;problem.<br>
&nbsp;<br>
For&nbsp;yp=None,&nbsp;the&nbsp;routine&nbsp;automatically&nbsp;determines&nbsp;the&nbsp;slopes&nbsp;using<br>
the&nbsp;"slopes"&nbsp;routine.<br>
&nbsp;<br>
X&nbsp;is&nbsp;assumed&nbsp;to&nbsp;be&nbsp;sorted&nbsp;in&nbsp;increasing&nbsp;order<br>
&nbsp;<br>
For&nbsp;values&nbsp;xi[j]&nbsp;&lt;&nbsp;x[0]&nbsp;or&nbsp;xi[j]&nbsp;&gt;&nbsp;x[-1],&nbsp;the&nbsp;routine&nbsp;tries&nbsp;a<br>
extrapolation.&nbsp;&nbsp;The&nbsp;relevance&nbsp;of&nbsp;the&nbsp;data&nbsp;obtained&nbsp;from&nbsp;this,&nbsp;of<br>
course,&nbsp;questionable...<br>
&nbsp;<br>
original&nbsp;implementation&nbsp;by&nbsp;Halldor&nbsp;Bjornsson,&nbsp;Icelandic<br>
Meteorolocial&nbsp;Office,&nbsp;March&nbsp;2006&nbsp;halldor&nbsp;at&nbsp;vedur.is<br>
&nbsp;<br>
completely&nbsp;reworked&nbsp;and&nbsp;optimized&nbsp;for&nbsp;Python&nbsp;by&nbsp;Norbert&nbsp;Nemec,<br>
Institute&nbsp;of&nbsp;Theoretical&nbsp;Physics,&nbsp;University&nbsp;or&nbsp;Regensburg,&nbsp;April<br>
2006&nbsp;Norbert.Nemec&nbsp;at&nbsp;physik.uni-regensburg.de</tt></dd></dl>
 <dl><dt><a name="-sum_flat"><strong>sum_flat</strong></a>(a)</dt><dd><tt>Return&nbsp;the&nbsp;sum&nbsp;of&nbsp;all&nbsp;the&nbsp;elements&nbsp;of&nbsp;a,&nbsp;flattened&nbsp;out.<br>
&nbsp;<br>
It&nbsp;uses&nbsp;a.flat,&nbsp;and&nbsp;if&nbsp;a&nbsp;is&nbsp;not&nbsp;contiguous,&nbsp;a&nbsp;call&nbsp;to&nbsp;ravel(a)&nbsp;is&nbsp;made.</tt></dd></dl>
 <dl><dt><a name="-trapz"><strong>trapz</strong></a>(x, y)</dt></dl>
 <dl><dt><a name="-vander"><strong>vander</strong></a>(x, N<font color="#909090">=None</font>)</dt><dd><tt>X&nbsp;=&nbsp;<a href="#-vander">vander</a>(x,N=None)<br>
&nbsp;<br>
The&nbsp;Vandermonde&nbsp;matrix&nbsp;of&nbsp;vector&nbsp;x.&nbsp;&nbsp;The&nbsp;i-th&nbsp;column&nbsp;of&nbsp;X&nbsp;is&nbsp;the<br>
the&nbsp;i-th&nbsp;power&nbsp;of&nbsp;x.&nbsp;&nbsp;N&nbsp;is&nbsp;the&nbsp;maximum&nbsp;power&nbsp;to&nbsp;compute;&nbsp;if&nbsp;N&nbsp;is<br>
None&nbsp;it&nbsp;defaults&nbsp;to&nbsp;len(x).</tt></dd></dl>
 <dl><dt><a name="-window_hanning"><strong>window_hanning</strong></a>(x)</dt><dd><tt>return&nbsp;x&nbsp;times&nbsp;the&nbsp;hanning&nbsp;window&nbsp;of&nbsp;len(x)</tt></dd></dl>
 <dl><dt><a name="-window_none"><strong>window_none</strong></a>(x)</dt><dd><tt>No&nbsp;window&nbsp;function;&nbsp;simply&nbsp;return&nbsp;x</tt></dd></dl>
 <dl><dt><a name="-zeros_like"><strong>zeros_like</strong></a>(a)</dt><dd><tt>Return&nbsp;an&nbsp;array&nbsp;of&nbsp;zeros&nbsp;of&nbsp;the&nbsp;shape&nbsp;and&nbsp;typecode&nbsp;of&nbsp;a.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>Complex</strong> = 'D'<br>
<strong>Float</strong> = 'd'<br>
<strong>Int</strong> = 'l'<br>
<strong>absolute</strong> = &lt;ufunc 'absolute'&gt;<br>
<strong>arctan2</strong> = &lt;ufunc 'arctan2'&gt;<br>
<strong>ceil</strong> = &lt;ufunc 'ceil'&gt;<br>
<strong>conjugate</strong> = &lt;ufunc 'conjugate'&gt;<br>
<strong>divide</strong> = &lt;ufunc 'divide'&gt;<br>
<strong>division</strong> = _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)<br>
<strong>exp</strong> = &lt;ufunc 'exp'&gt;<br>
<strong>exp_safe_MAX</strong> = 1.7976931348623157e+308<br>
<strong>exp_safe_MIN</strong> = -708.39641853226408<br>
<strong>floor</strong> = &lt;ufunc 'floor'&gt;<br>
<strong>log</strong> = &lt;ufunc 'log'&gt;<br>
<strong>multiply</strong> = &lt;ufunc 'multiply'&gt;<br>
<strong>pi</strong> = 3.1415926535897931<br>
<strong>power</strong> = &lt;ufunc 'power'&gt;<br>
<strong>readme</strong> = '<font color="#c040c0">\n</font>MLab2.py, release 1<font color="#c040c0">\n\n</font>Created on February 2003 b...<font color="#c040c0">\n</font>Look at: http://pdilib.sf.net for new releases.<font color="#c040c0">\n</font>'<br>
<strong>verbose</strong> = &lt;matplotlib.Verbose instance&gt;</td></tr></table>
@footer@
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.