<div><div><div>Thank you but the same time:</div><div> import numpy as np</div><div> import time</div><div> N = 3000</div><div> m_0 = np.arange(N)</div><div><div> a = np.ones(N)</div></div><div><div>#===== first =========</div></div><div> t1 = time.time()</div><div> m_1 = np.outer(m_0, a).ravel()</div><div> m_2 = np.outer(a, m_0).ravel()</div><div> t1 = time.time() - t1</div><div>#===== second =======</div><div> t2 = time.time()</div><div> m_3 = np.tile(m_0, N)</div><div> m_4 = np.repeat(m_0, N)</div><div> t2 = time.time() - t2</div><div>#==================</div><div> np.sum(m_1 - m_3)</div><div> np.sum(m_2 - m_4)</div><div> t1</div><div> t2</div></div></div><div> </div><div>10.01.2021, 08:37, "V. Armando Sole" <sole@esrf.fr>:</div><blockquote><div style="font-family:'verdana' , 'geneva' , sans-serif;font-size:10pt"><p>I guess the speed up, if any, will be machine dependent, but you can give a try at:</p><p>import numpy as np<br />import time<br />N = 3000<br />m_0 = np.arange(N)<br />t = time.time()<br />a = np.ones(N)<br />m_1 = np.outer(m_0, a).ravel()<br />m_2 = np.outer(a, m_0).ravel()<br />t = time.time() - t</p><div> </div><p> </p><p>On 2021-01-09 20:07, <a href="mailto:klark--kent@yandex.ru" rel="noopener noreferrer">klark--kent@yandex.ru</a> wrote:</p><blockquote style="border-left-color:#1010ff;border-left-style:solid;border-left-width:2px;margin:0;padding:0 0.4em 0 0.4em"><p>Hello. <span style="color:#0c0d0e;font-family:'helvetica neue' , 'helvetica' , 'arial' , sans-serif;font-size:15px">There is a random 1D array m_0 with size 3000, for example:</span></p><pre style="border:0px;border-radius:5px;box-sizing:inherit;font-family:'consolas' , 'menlo' , 'monaco' , 'lucida console' , 'liberation mono' , 'dejavu sans mono' , 'bitstream vera sans mono' , 'courier new' , monospace , sans-serif;line-height:1.30769;margin-top:0px;max-height:300px;overflow:auto;padding:12px;vertical-align:baseline"><code style="border:0px;box-sizing:inherit;font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;max-height:300px;padding:0px;vertical-align:baseline">m_0 = np.array([<span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>])
</code></pre><p style="border:0px;box-sizing:inherit;color:#0c0d0e;font-family:'helvetica neue' , 'helvetica' , 'arial' , sans-serif;font-size:15px;line-height:inherit;margin-left:0px;margin-right:0px;margin-top:0px;padding:0px;vertical-align:baseline">I need to generate two 1D arrays:</p><pre style="border:0px;border-radius:5px;box-sizing:inherit;font-family:'consolas' , 'menlo' , 'monaco' , 'lucida console' , 'liberation mono' , 'dejavu sans mono' , 'bitstream vera sans mono' , 'courier new' , monospace , sans-serif;line-height:1.30769;margin-top:0px;max-height:300px;overflow:auto;padding:12px;vertical-align:baseline"><code style="border:0px;box-sizing:inherit;font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;max-height:300px;padding:0px;vertical-align:baseline">m_1 = np.array([<span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>])
m_2 = np.array([<span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">0</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">1</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>, <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">2</span>])
</code></pre><p style="border:0px;box-sizing:inherit;color:#0c0d0e;font-family:'helvetica neue' , 'helvetica' , 'arial' , sans-serif;font-size:15px;line-height:inherit;margin-left:0px;margin-right:0px;margin-top:0px;padding:0px;vertical-align:baseline">Is there faster way to do it than this one:</p><pre style="border:0px;border-radius:5px;box-sizing:inherit;font-family:'consolas' , 'menlo' , 'monaco' , 'lucida console' , 'liberation mono' , 'dejavu sans mono' , 'bitstream vera sans mono' , 'courier new' , monospace , sans-serif;line-height:1.30769;margin-top:0px;max-height:300px;overflow:auto;padding:12px;vertical-align:baseline"><code style="border:0px;box-sizing:inherit;font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;max-height:300px;padding:0px;vertical-align:baseline"><span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> numpy <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">as</span> np
<span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">import</span> time
N = <span style="border:0px;box-sizing:inherit;font:inherit;margin:0px;padding:0px;vertical-align:baseline">3</span>
m_0 = np.arange(N)
t = time.time()
m_1 = np.tile(m_0, N)
m_2 = np.repeat(m_0, N)
t = time.time() - t</code></pre><pre style="border:0px;border-radius:5px;box-sizing:inherit;font-family:'consolas' , 'menlo' , 'monaco' , 'lucida console' , 'liberation mono' , 'dejavu sans mono' , 'bitstream vera sans mono' , 'courier new' , monospace , sans-serif;line-height:1.30769;margin-top:0px;max-height:300px;overflow:auto;padding:12px;vertical-align:baseline"><code style="border:0px;box-sizing:inherit;font-family:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;max-height:300px;padding:0px;vertical-align:baseline">I tried other ways but they are slower or have the same time. Other NumPy operations in my code 10-100 times faster. </code>Why the repeating an array is so slow? I need 10 times speed up. Thank you for your attantion to my problem.</pre> <div style="font-family:monospace;margin:0;padding:0">_______________________________________________<br />NumPy-Discussion mailing list<br /><a href="mailto:NumPy-Discussion@python.org" rel="noopener noreferrer">NumPy-Discussion@python.org</a><br /><a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noopener noreferrer">https://mail.python.org/mailman/listinfo/numpy-discussion</a></div></blockquote></div>,<p>_______________________________________________<br />NumPy-Discussion mailing list<br /><a href="mailto:NumPy-Discussion@python.org" rel="noopener noreferrer">NumPy-Discussion@python.org</a><br /><a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noopener noreferrer">https://mail.python.org/mailman/listinfo/numpy-discussion</a></p></blockquote>