<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 13 Dec 2020, at 6:25 am, Sebastian Berg <<a href="mailto:sebastian@sipsolutions.net" class="">sebastian@sipsolutions.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">But "default" in NumPy really doesn't mean a whole lot?  I can think of</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">three places where "defaults" exists:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div></blockquote></div><br class=""><div class="">Huh? There are platform-specific defaults for literally every array creation function in NumPy?</div><div class=""><br class=""></div><div class="">In [1]: np.array([4, 9]).dtype<br class="">Out[1]: dtype('int64')<br class=""><br class="">In [2]: np.array([3., 0.]).dtype<br class="">Out[2]: dtype('float64')<br class=""><br class="">In [3]: np.arange(5).dtype<br class="">Out[3]: dtype('int64')<br class=""><br class="">In [4]: np.arange(5.).dtype<br class="">Out[4]: dtype('float64')<br class=""><br class="">In [5]: np.empty(5).dtype<br class="">Out[5]: dtype('float64')<br class=""><br class="">In [6]: np.zeros(5).dtype<br class="">Out[6]: dtype('float64')<br class=""><br class="">In [7]: np.full(5, 5).dtype<br class="">Out[7]: dtype('int64')<br class=""><br class="">In [8]: np.full(5, 5.).dtype<br class="">Out[8]: dtype('float64’)</div><div class=""><br class=""></div><div class="">The list goes on…</div><div class=""><br class=""></div><div class="">And, indeed, mixing types can cause implicit casting, and thus both slowness and unexpected type promotion, which brings with it its own bugs… Again, I think it is valuable to have syntax to express `np.zeros(…, dtype=<whatever-dtype-np.array(…)-would-give-for-my-data>)`.</div><div class=""><br class=""></div><div class="">Juan.</div></body></html>