I think we can do better if we use fromiter and supply the size as count: np.fromiter ((u**2 for u in range(10)), dtype=float, count=10)
On Fri, Jun 23, 2023 at 10:39 AM Joao S. O. Bueno <jsbu...@python.org.br> wrote: > If you use Python's own arrays and generator expressions instead of list > comprehension (by just dropping the `[ ]`s), > you will get each number converted to the target type in memory as soon as > it is calculated. (It will be a full > Python float/int instance during the calculation itself, though). > > This won't work with the usual numpy array constructors as those need the > array size beforehand - but if you know > the size beforehand, there is probably a numpy constructor with no need to > go through Python arrays first (but I don't know one by heart) > ``` > import numpy as np > import array > > data = np.array(array.array("b", (int(127 * cos(i/100)) for i in > range(628))), dtype="int8", copy=False) > ``` > > > On Fri, Jun 23, 2023 at 10:53 AM Neal Becker <ndbeck...@gmail.com> wrote: > >> One item I admire from Julia and miss in python/numpy, >> >> I often use the power of python list comprehension to process data. This >> data often needs to be converted to numpy for other operations, for >> example >> fancy indexing. The fact that operations using comprehensions (which >> produce lists) and operations on numpy arrays use different incompatible >> data structures requires conversions between lists and numpy arrays. >> Comprehensions in Julia produce arrays directly (I believe), removing the >> need for conversions. >> >> I don't see any easy way to improve this. Any ideas? >> >> Thanks, >> Neal >> >> -- >> *Those who don't understand recursion are doomed to repeat it* >> _______________________________________________ >> Python-ideas mailing list -- python-ideas@python.org >> To unsubscribe send an email to python-ideas-le...@python.org >> https://mail.python.org/mailman3/lists/python-ideas.python.org/ >> Message archived at >> https://mail.python.org/archives/list/python-ideas@python.org/message/SRT377EAT4BAOFNMXXX7J7UFFQAJZBPZ/ >> Code of Conduct: http://python.org/psf/codeofconduct/ >> > -- *Those who don't understand recursion are doomed to repeat it*
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/5PUKWPVAAKOPD7BC4SGZHOCNYDAWY4PL/ Code of Conduct: http://python.org/psf/codeofconduct/