Is there anyway to get around this timing difference?<br><b><span id="_user_numpy-discussion@lists.sourceforge.net"><span style="font-weight: bold;"><br>&nbsp; &gt;&gt;&gt; import timeit<br></span><span style="font-weight: bold;">
</span></span></b><b><span id="_user_numpy-discussion@lists.sourceforge.net"><span style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; &gt;&gt;&gt; </span>t1 = timeit.Timer(&quot;a = zeros((1000,1000),'d'); a += 1.;&quot;,&nbsp; 'from numpy import zeros,mat')
<br></span></span></b><b><span id="_user_numpy-discussion@lists.sourceforge.net"><span style="font-weight: bold;"><span style="font-weight: bold;">&nbsp; &gt;&gt;&gt; </span>t2 = timeit.Timer(&quot;a = mat(zeros((1000,1000),'d')); a += 1.;&quot;,&nbsp; 'from numpy import zeros,mat')
<br><span style="font-weight: bold;">&nbsp; </span>&gt;&gt;&gt; </span></span></b><b><span id="_user_numpy-discussion@lists.sourceforge.net"><span style="font-weight: bold;">t1.timeit(100)<br>&nbsp; 1.8391627591141742<br><span style="font-weight: bold;">
<span style="font-weight: bold;">&nbsp; </span>&gt;&gt;&gt; </span>t2.timeit(100)<br><span style="font-weight: bold;">&nbsp; </span>3.2988266117713465<br></span><br clear="all"></span></b>Copying all the data of the input array seems wasteful when the array is just going to go out of scope.&nbsp; Or is this not something to be concerned about?&nbsp; 
<br><br>It seems like a copy-by-reference version of mat() would be useful.&nbsp; Really I can't imagine any case when I'd want both a matrix and the original version of the array both hanging around as separate copies.&nbsp; I can imagine either 1) the array is just a temp and I won't ever need it again or 2) temporarily wanting a &quot;matrix view&quot; on the array's data to do some linalg, after which I'll go back to using the original (now modified) array as an array again.
<br><br>--bill<br>