<br><br><div><span class="gmail_quote">On 1/12/07, <b class="gmail_sendername">David Cournapeau</b> <<a href="mailto:cournape@gmail.com">cournape@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 1/13/07, Christopher Barker <<a href="mailto:Chris.Barker@noaa.gov">Chris.Barker@noaa.gov</a>> wrote:<br>> I think it may have all been cleared up now, but just in case:<br>><br><br>> but how do you get single strided? this is what always made it hard for
<br>> me to know how to write this kind of code.</blockquote><div><br><snip><br><br>Make a copy of the array. New copies are C_CONTIGUOUS by default. There is also the ascontiguousarray function:<br><br>ascontiguousarray(a, dtype=None)
<br>    Return 'a' as an array contiguous in memory (C order).<br><br>Which makes a copy only when required. Since clip returns a new array anyway, this shouldn't be a problem except when clipping against another array, which you would also want to be contiguous. In practice, I don't think using ascontiguousarray for the clipping array would add much overhead as the array would likely be contiguous in the first place. You would probably want to match data types also. I think the needed ops are already implemented for the types at the c-level, __gt__ for instance, and in that case you can simply use the function pointer with some loss of speed. If you can determine the corresponding c-type, and I think you can, then it shouldn't be too much trouble to implement type specific clipping, but it might not be worth the effort. There are lots of code snippets in other functions similar to what you need that could be a good starting point. You just need to find them 8^)
<br></div><br>Chuck<br></div><br>