abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:00 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | IT novinky

    Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …

    Ladislav Hagara | Komentářů: 0
    dnes 12:33 | IT novinky

    Evropská komise by do léta mohla předložit návrh normy omezující používání sociálních sítí dětmi v zájmu jejich bezpečí na internetu. Prohlásila to včera předsedkyně EK Ursula von der Leyenová, podle níž řada zemí Evropské unie volá po zavedení věkové hranice pro sociální sítě. EU částečně řeší bezpečnost dětí v digitálním prostředí v již platném nařízení o digitálních službách (DSA), podle německé političky to však není dostatečné a

    … více »
    Ladislav Hagara | Komentářů: 9
    dnes 04:11 | Nová verze

    Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 4.0.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Pozvánky

    Chybí vám někdo, s kým byste si popovídali o bastlení, technice, počítačích a vědě? Nechcete riskovat debatu o sportu u piva v hospodě? Pak doražte na virtuální pokec u virtuálního piva v rámci Virtuální Bastlírny organizované strahovským MacGyverem již tento čtvrtek. Možná se ptáte, co se tak může probírat? Dají se probrat slavná výročí - kromě 55 let obvodu 555 (což je mimochodem prý andělské číslo) a vzpomínky na firmu Signetics -

    … více »
    bkralik | Komentářů: 0
    včera 23:11 | Zajímavý software

    GTK2-NG je komunitní fork GTK 2.24 (aktuální verze je 4.22). Oznámení a diskuse v diskusním fóru Devuanu, forku Debianu bez systemd. Není to jediný fork GTK 2. Ardour je například postaven na vlastním forku GTK 2 s názvem YTK.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Pozvánky

    V neděli 17. května 2026 proběhne v Českých Budějovicích první MobileLinux Hackday zaměřený na Linux v mobilech, embedded platformy a open source hardware. Po sedmi úspěšných měsíčních setkáních v Praze se akce přesouvá také do jižních Čech, aby se komunita mobilního Linuxu mohla potkat i mimo hlavní město. Akce se uskuteční v konferenčním sále Vajgar v Clarion Congress Hotelu (Pražská tř. 2306/14) se zahájením mezi 14:00 až 15:00 a … více »

    lkocman | Komentářů: 0
    včera 15:00 | Komunita

    Vývojáři Debianu zhruba v polovině vývojového cyklu Debianu 14 s kódovým názvem Forky rozhodli, že Debian musí dodávat reprodukovatelné balíčky, tj. kdokoli si může nezávisle ověřit, že daný binární balíček vznikl překladem a sestavením z konkrétních zdrojových kódů. Aktuálně je reprodukovatelných 98,29 % balíčků.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Bezpečnostní upozornění

    Německý e-shop Škoda Auto byl hacknut. Útočníci získali přístup k uživatelským údajům (jméno, adresa, e-mail, heslo, telefon, …).

    Ladislav Hagara | Komentářů: 5
    včera 11:22 | Pozvánky

    Na webu konference Den IPv6 2026, která se uskuteční 4. června v Národní technické knihovně v pražských Dejvicích, je nyní k dispozici kompletní program této tradiční akce věnované tématům spojeným s protokolem IPv6. Na celodenní pásmo přednášek je třeba se přihlásit a zaplatit účastnický poplatek 242 korun. Registrační formulář najdou zájemci opět na webu akce. Konferenci Den IPv6 2026 organizují i letos společně sdružení CESNET, CZ.NIC a NIX.CZ.

    VSladek | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (9%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (25%)
    Celkem 1595 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Python - jak vektorizovat metodu ve třídě?

    24.7.2014 22:43 Olaf
    Python - jak vektorizovat metodu ve třídě?
    Přečteno: 495×
    Zdarec, z nadpisu dotazu je to zřejmé: mám jistou třídu, třída má funkci, tedy teď už metodu, která musí pracovat s vektory. Na převod své metody (funkce) používám z Numpy tradiční np.vectorize(fce), kde fce je ona metoda. Ve třídě to ale nejde dobře: když dám fce = classmethod(np.vectorize(fce)), tak Python pak řve, že třída neobsahuje použité atributy (přitom tam jsou). Pokud takto metodu nezvektorizuju, tak to jede OK a atributy jsou přístupné. Jinými slovy, vektorizovat metodu přes numpy vectorize nejde? Jestli ne, tak to prostě proženu samostatným cyklem, no.

    Odpovědi

    25.7.2014 02:29 chrono
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    Nefunguje to ani ako dekorátor?

    a teda niečo ako:
    @np.vectorize
    def fce(self, ...):
        pass
    25.7.2014 03:32 Olaf
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    E-e, tohle vůbec nevezme. Hází chybu hned.
    25.7.2014 10:26 petr b
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    Proč classmethod? numpy.vectorize nejde na normálních metodách, ale bude fungovat na staticmethod.
    import numpy as np
    
    class VC(object):
        @staticmethod
        @np.vectorize
        def myfunc(a, b):
            "Return a-b if a>b, otherwise return a+b"
            if a > b:
                return a - b
            else:
                return a + b
    
    
    print VC.myfunc([1, 2, 3, 4], 2)
    
    o = VC()
    print o.myfunc([1, 2, 3, 4], 2)
    
    Ale pak proč to mít ve třídě?
    26.7.2014 04:44 Olaf
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    Na ja, aber... Ta metoda musí fungovat s atributy z třídy. Prostě jsem to a) prohnal loopem, b) nakonec hodil ven jako samostatnou funkci.
    25.7.2014 14:20 Sten
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    První parametr je self, ale Numpy se jej pokusí vektorizovat. Zkusil bych:
    fce = np.vectorize(fce, excluded=['self'])
    
    Navíc classmethod dělá trochu něco jiného, než chcete.
    26.7.2014 04:47 Olaf
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    Dík, já to zkoušel různě, nic nebylo úspěšně. Jak píšu výše, prostě jsem nakonec tu funkci hodil ven a instanci třídy použil jako parametr. Chtěl jsem to původně mít uspořádáno uvnitř, ale to je vlastně fuk (šlo by to, s vlastním loopem, ale pak by to bylo pomalejší, protože některé výpočty by se dělaly znova a znova). Ještě jednou díky za snahu.
    26.7.2014 12:01 logik
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    Jestli chceš efektivně vektorizovat, tak se koukni na cython a prange.

    Pokud je vektorizace kvůli syntaktickýmu cukru, tak si tu vektorizovanou metodu napiš jako vnitřní funkci classmetody objektu, kterou v tý classmetodě jen nadefinuješ a zavoláš. Sice tam bude o jedno volání fce víc, ale to zpravidla nevadí (pokud ji teda nevoláš stotisíckrát v cyklu).
    26.7.2014 12:37 logik
    Rozbalit Rozbalit vše Re: Python - jak vektorizovat metodu ve třídě?
    Jinak nevím, k čemu přesně používáš to np.vectorize, ale mam zkušenosti, že rychlejší je to napsat čistě jako funkci rovnou příjmající i argumenty typu np.ndarray.

    np.vectorize totiž tu tvojí "vektorizovanou" funkci zavolá pro každej prvek pole, zatímco pokud použiješ "vektorovou aritmetiku" - tzn. přímo operátory nad np.ndarray, tak je volána jen jednou a pro výpočet matematických operací se použijou vektorizovaný rutiny z matematickejch knihoven (ATLAS, OpenBlas apod.)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.