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í
×
    včera 18:33 | Bezpečnostní upozornění

    Vládní CERT (GovCERT.CZ) upozorňuje (𝕏) na kritickou zranitelnost v jsPDF, CVE-2025-68428. Tato zranitelnost umožňuje neautentizovaným vzdáleným útočníkům číst libovolné soubory z lokálního souborového systému serveru při použití jsPDF v prostředí Node.js. Problém vzniká kvůli nedostatečné validaci vstupu u cest k souborům předávaných několika metodám jsPDF. Útočník může zneužít tuto chybu k exfiltraci citlivých

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 16:22 | Komunita

    V úterý 13. ledna 2025 se v pražské kanceláři SUSE v Karlíně uskuteční 5. Mobile Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a související infrastrukturu. Akci pořádá David Heidelberg.

    … více »
    lkocman | Komentářů: 0
    včera 16:00 | Pozvánky

    Už je 14 dní zbývá do začátku osmého ročníku komunitního setkání nejen českých a slovenských správců sítí CSNOG 2026. Registrace na akci je stále otevřená, ale termín uzávěrky se blíží. I proto organizátoři doporučují, aby se zájemci přihlásili brzy, nejlépe ještě tento týden.

    … více »
    VSladek | Komentářů: 0
    včera 02:22 | Pozvánky

    Rok 2026 sotva začal, ale už v prvním týdnu se nashromáždilo nezvykle mnoho zajímavostí, událostí a zpráv. Jedno je ale jisté - už ve středu se koná Virtuální Bastlírna - online setkání techniků, bastlířů a ajťáků, kam rozhodně doražte, ideálně s mikrofonem a kamerou a zapojte se do diskuze o zajímavých technických tématech.

    Dějí se i ne zcela šťastné věci – zdražování a nedostupnost RAM a SSD, nedostatek waferů, 3€ clo na každou položku z Číny … více »
    bkralik | Komentářů: 0
    5.1. 22:00 | Komunita

    Vývojáři GNOME a Firefoxu zvažují ve výchozím nastavení vypnutí funkce vkládání prostředním tlačítkem myši. Zdůvodnění: "U většiny uživatelů tento X11ism způsobuje neočekávané chování".

    Ladislav Hagara | Komentářů: 10
    5.1. 15:22 | Nová verze

    Nástroj pro obnovu dat GNU ddrescue (Wikipedie) byl vydán v nové verzi 1.30. Vylepšena byla automatická obnova z disků s poškozenou čtecí hlavou.

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

    Protokol IPv6 má již 30 let. První návrh specifikace RFC 1883 je z prosince 1995.

    Ladislav Hagara | Komentářů: 13
    5.1. 01:55 | IT novinky

    Byli vyhlášeni vítězové ocenění Steam Awards 2025. Hrou roku a současně nejlepší hrou, která vám nejde, je Hollow Knight: Silksong.

    Ladislav Hagara | Komentářů: 2
    4.1. 21:11 | Nová verze

    Byla vydána nová verze 26.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Anh-Linh. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.

    Ladislav Hagara | Komentářů: 0
    3.1. 20:22 | Humor Ladislav Hagara | Komentářů: 67
    Které desktopové prostředí na Linuxu používáte?
     (0%)
     (4%)
     (0%)
     (11%)
     (24%)
     (6%)
     (6%)
     (3%)
     (11%)
     (52%)
    Celkem 228 hlasů
     Komentářů: 4, poslední včera 12:50
    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: 486×
    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.