Nasıl bir jeneratör numpy bir dizi oluşturmak mı? | Netgez.com
SORU
15 Aralık 2008, PAZARTESİ


Nasıl bir jeneratör numpy bir dizi oluşturmak mı?

Nasıl bir doktor, bir nesne numpy bir dizi inşa miyim?

Bana sorunu göstermek

>>> import numpy
>>> def gimme():
...   for x in xrange(10):
...     yield x
...
>>> gimme()
<generator object at 0x28a1758>
>>> list(gimme())
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> numpy.array(xrange(10))
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> numpy.array(gimme())
array(<generator object at 0x28a1758>, dtype=object)
>>> numpy.array(list(gimme()))
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Bu durumda, () ver bir diziye çevirmek istiyorum kimin jeneratör. Ancak, bir dizi yapıcı jeneratör üzerinde yineleme değil, basit jeneratör kendisi saklar. Arzu ettiğim davranış numpy kaynaklanıyor.(((ver bana) listesi) dizisi, ama ara bellek listesi ve aynı zamanda son bellek dizisi olan havai ödemek istemiyorum. Uzay-verimli bir yolu var mı?

CEVAP
24 ŞUBAT 2009, Salı


Google bu stackoverflow sonucu arkasında numpy.fromiter(data, dtype, count) olduğunu buldum. Varsayılan count=-1 iterable tüm unsurları alır. dtype açıkça ayarlanmış olması gerekir. Benim durumumda, bu çalıştı:

numpy.fromiter(something.generate(from_this_input), float)

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • SalGames2016

    SalGames2016

    17 Kasım 2012
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009