<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 28, 2014 at 10:25 AM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><p dir="ltr">I too would be curious to know why .flat exists (beyond "it seemed like a good idea at the time" ;-)). I've always treated it as some weird legacy thing and ignored it, and this has worked out well for me.<br></p></span>
<p dir="ltr">Is there any real problem where .flat is really the best solution? Should we deprecate it, or at least warn people off from it officially?</p><span class="HOEnZb"><font color="#888888">
<p dir="ltr"></p></font></span></blockquote><div>.flat lets you iterate over all elements of a N-dimensional array as if it was 1D, without ever needing to make a copy of the array. In contrast, ravel() and reshape(-1) cannot always avoid a copy, because they need to return another ndarray.</div><div><br></div><div>np.nditer is a reasonable alternative to .flat (and it's documented as such), but it's a rather inelegant, kitchen-sink type function.</div></div></div></div>