[Numpy-discussion] How to speed up array generating

Sebastian Berg sebastian at sipsolutions.net
Sat Jan 9 16:18:39 EST 2021


On Sat, 2021-01-09 at 23:45 +0300, klark--kent at yandex.ru wrote:
> np.meshgrid, indexing, reshape

I would expect e.g. reshape helps if you make use of the fact that this
is very clear in 2-D. The other thing is ensuring to use the methods
`arr.reshape`, `arr.repeat`, which avoids overheads (some of which may
be optimized away in the future though).

That said, with this type of code and the small arrays in the example,
there are fairly significant overheads.  So if  you want to get serious
input or a good solution, I would suggest to give more context and
include how those lines of code are used in your program/function.

Chances are that there is a much faster and possibly more elegant way
to write it, e.g. by solving many of these at the same time, but nobody
will be able to tell unless they know how you need it. Also with more
context, the other possibility is that somone may hint at cython or
numba/transonic.

Cheers,

Sebastian


> 
> 09.01.2021, 22:30, "Joseph Fox-Rabinovitz"
> <jfoxrabinovitz at gmail.com>:
> What other ways have you tried?
> 
> On Sat, Jan 9, 2021 at 2:15 PM <klark--kent at yandex.ru> wrote:
> > Hello. There is a random 1D array m_0 with size 3000, for example:
> > m_0 = np.array([0, 1, 2])
> > I need to generate two 1D arrays:
> > m_1 = np.array([0, 1, 2, 0, 1, 2, 0, 1, 2])
> > m_2 = np.array([0, 0, 0, 1, 1, 1, 2, 2, 2])
> > Is there faster way to do it than this one:
> > import numpy as np
> > import time
> > N = 3
> > 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
> > I tried other ways but they are slower or have the same time. Other
> > NumPy operations in my code 10-100 times faster. Why the repeating
> > an array is so slow? I need 10 times speed up. Thank you for your
> > attantion to my problem.
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at python.org
> > https://mail.python.org/mailman/listinfo/numpy-discussion
> ,
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://mail.python.org/pipermail/numpy-discussion/attachments/20210109/b5191cfc/attachment.sig>


More information about the NumPy-Discussion mailing list