Profilo di Confuso83

Nome Confuso83
Indirizzo email n/a
Messaggi13
  • Pandas e numpy
    Forum >> Programmazione Python >> Calcolo scientifico
    Salve,




    ho recentemente iniziato ad usare Pandas le cui strutture dati si chiamano dataframe. Da quanto ho capito, Panda puo' solamente interagire con dati strutturati, o al massimo semi-strutturati, cioe' organizzati in tabelle, vero? Per esempio, file xls, file csv, o anche json, possono essere convertiti in dataframe pandas...




    Un'altra libreria molto importante e' numpy per i calcoli matematici piu' complessi di quelli che si possono fare con pandas. E' possibile applicare i metodi di panda direttamente alle array numpy e, vice versa, metodi numpy a dataframe pandas visto che le librerie pandas e numpy sono costruite l'una sull'altra? Oppure bisogna sempre convertire prima i dataframe in matrici numpy per applicare loro i metodi di numpy?



    Grazie,
    Confuso
  • IDE e ambienti virtuali...
    Forum >> Programmazione Python >> IDE ed Editor
    Salve a tutti,

    Vorrei sapere se scaricando IDE diverse (PyCharm, Thonny, Jupyter, ecc.) sul nostro computer si finisce per avere un interprete Python diverso per ciascuna IDE... Penso di si.

    -- Oppure le varie IDE che abbiamo scaricato cercano e usano uno degli interpreti gia' scaricati?


    -- In merito ai moduli gia' installati con una certa IDE (supponiamo IDLE), tali moduli potranno essere utilizzati anche da qualsiasi altra IDE per scrivere i programmi Python?


    -- Mi viene da pensare che l'uso degli ambienti virtuali possa avere un'utilita' in questo contesto visto che a volte se cambio IDE passando da IDLE a Jupyter, non riesco ad importare i moduli desiderati...In merito ai virtual environment, penso si usino cosi':

    a) si apre una delle IDE disponibili e si crea un ambiente virtuale al prompt

    b) si attiva poi l'ambiente virtuale

    c) si scarica un interprete Python e le varie librerie usando pip dentro l'ambiente virtuale

    d) si scrivono poi i programmi Python con la IDE. Gli script useranno l'interprete e i moduli disponibili nell'ambiente stesso. Salvando lo script, lo script verra' automaticamente salvato nell'ambiente virtuale in questione.

    Ho capito correttamente? Questo permette di assicurare che script diversi funzioneranno sempre a prescindere dalla IDE che si usa perche' si potra usare qualsiasi IDE e attivare da essa l'ambiente virtuale che si desidera evitando il problema di non trovare i moduli necessari, ecc.




    Grazie!

    Confuso83


    --- Ultima modifica di Confuso83 in data 2022-09-04 15:34:40 ---
  • Re: Differenza fra iterable e iterator e uso specifico...
    Forum >> Principianti
    Grazie dell'articolo, Cya. Ho decisamente capito le principali differenze fra iterabile e iteratore ma mi rimane un solo dubbio:


    L'iteratore sembra essere una struttura piu' agile e conveniente dal punto di vista dell'uso della memoria rispetto alla lista. Per esempio, a= [1,2,3] crea una lista in RAM e b=iter(a) crea un iteratore. Ovviamente, una lista lunghissima, occupa un'enormita' di spazio in memoria RAM. No bueno.


    Nel caso dell'iteratore b invece, viene usato il concetto di lazy evaluation: l'iteratore crea in memoria solo un valore alla volta man mano che gli viene richiesto usando la funzione next(). La creazione della lista crea tutti gli elementi della lista stessa in un solo colpo (piu' dispendioso).

    Ma per creare un iteratore non devo per forza creare prima la lista da cui deriva l'iteratore stesso? Questo sembra richiedere memoria due volte (per la lista e per l'iteratore).


    Oppure posso creare un iteratore da solo, salvarlo in disco fisso, e richiede i suoi valori uno alla volta quando creo e lancio lo script Python?


    Grazie per qualsiasi illuminazione!


    --- Ultima modifica di Confuso83 in data 2022-02-12 15:19:16 ---
  • Differenza fra iterable e iterator e uso specifico...
    Forum >> Principianti
    Salve,

    Sono alle prese con i concetti di iterabile e iteratore e spero di fare un po' di chiarezza.


    Da quanto ho capito:

    a) Un' iterabile e' una lista, una tupla, un dizionario, una stringa, qualsiasi sequenza di uno o piu' elementi sulla quale si puo' fare un'iterazione (un for loop).
    b) Quando si crea un'iterabile, spazio in memoria viene riservato per l'intera iterabile. Questo puo' essere dispendioso.

    c) Nell'esecuzione di un for loop puo' usare sia un'iterabile sia un iteratore. Nel caso si usi un'iterabile, l'iterabile viene convertita dietro le scene in un iteratore per eseguire l'iterazione.


    In merito all' interatore:

    a) si tratta di un oggetto a cui si puo' applicare consecutivamente il metodo next() per ottenere uno ad uno gli elementi dell'iteratore stesso. L'interatore ha memoria del suo stato.

    b) L'iteratore sembra occupare meno memoria di un iterabile...Perche'?

    c) Un' interabile si puo' convertire in un iteratore con il metodo iter().

    d) Gli iteratori sono iterabili ma non vice versa.

    Detto tutto questo, per iterare un iterabile si puo' semplicemente usare l'indicizzazione e prelevare qualsivoglia elemento dall'iterabile. Per es., a= [1,2,3], a0=1. Sembra quindi possibile fare quello che si fa con l'iteratore con l'interabile usando l'indicizzazione...o mi sbaglio?


    Un iterabile e' un contenitore", detto data structure. Si puo' eseguire l'iterazione sull'iterabile SOLO se si trasforma l'iterabile in iteratore. Altrimenti, l'interabile rimane un contenitore non iterabile? Sono un po' confuso sui meriti dell'iterabile rispetto ai meriti dell'iteratore...

    Grazie per qualsiasi chiarimento!


    --- Ultima modifica di Confuso83 in data 2022-01-27 14:43:31 ---
  • Capire quando usare la parola chiave "global"
    Forum >> Principianti
    Salve a tutti,



    Sono alle prese con le funzioni, namespace, ecc. e ho una domanda di chiarimento sull'uso di "global".

    Ho compreso che le variabili all'interno di una funzione sono variabili private e locali e non utilizzabili al di fuori della funzione stessa. Caveat: se la funzione ha un "return" allora si puo' associare il valore di una variabile interna ad una variabile esterna e globale, penso....




    -- Le variabili globali sono tutte le variabili definite nel programma principale e fuori dalle funzioni.

    -- Le variabili globali sono utilizzabili ovunque, anche dentro le funzioni.




    La parola chiave "global" si usa quando: esistono una variabile globale esterna ed una variabile locale che hanno lo stesso nome e si vuole usare o modificare la variabile globale esterna all'interno della funzione stessa.

    N.B. una variable globale esterna puo essere usata da una funzione per calcoli, ecc. ma non si puo' avere la variabile globale direttamente all'interno della funzione, direi, a meno che non si usi "global".




    Grazie!

    Confuso83



  • Re: IDE Jupyter notebook - come funziona
    Forum >> Programmazione Python >> IDE ed Editor
    GRAZIE!!!
  • Re: IDE Jupyter notebook - come funziona
    Forum >> Programmazione Python >> IDE ed Editor
    Grazie RicPol! Troppo gentile :)



    "...potresti tranquillamente installarlo con Pip in una distribuzione di Python "normale"...."

    Quale altra distribuzione avresti installato invece di Anaconda? So che e' possibile installare anche jupyter da solo senza alcuna distribuzione.


    "...Se hai Anaconda, allora dentro ci trovi anche sia la shell Ipython, sia Jupyter..."

    Quindi installare Anaconda equivale ad avere due shell diverse. Quella che chiami shell e' l'interprete Python? Shell e interprete sono sinonimi? Jupyter parla di kernel che penso sia la stessa cosa dell'interprete.




    Grazie!!!



  • IDE Jupyter notebook - come funziona
    Forum >> Programmazione Python >> IDE ed Editor
    Salve a tutti,

    Ho scaricato la distro Anaconda che include molte cose: l'interprete Python, tanti moduli e librerie e l' IDE Jupyter Notebook. Da quanto ho capito, Jupyter Notebook e' una IDE che usa il web browser come interfaccia. I notebook sono file JSON che vengono tradotti in .py dalla kernel.

    Scaricare Jupyter significa scaricare:


    a) Una kernel Python

    b) Una componente software server

    c) Una componente scritta in JS che interagisce con il nostro browser


    Ho capito correttamente? Il browser comunica con il server che a sua volta comunica con la kernel.

    La kernel sarebbe l'interprete Python o e' qualcosa di piu'?

    La kernel di Jupyter e' lo stesso interprete Python che Anaconda utilizza o si tratta di due interpreti diversi?


    Grazie e saluti,

    Federico


    --- Ultima modifica di Confuso83 in data 2021-09-12 17:47:59 ---
  • Usare pip correttamente in Windows e Mac
    Forum >> Principianti
    Salve a tutti,

    Uso Windows ma mi capita spesso di usare anche il Mac e vorrei capire se i comandi che ho elencato sotto sono effettivamente corretti per installare moduli in Python usando pip visto che a volte funzionano e a volte no. Per Mac, ho letto che sarebbe utile installare Homebrew ma non ho ancora capito di cosa si tratta...

    Grazie!

    Windows
    per verificare se pip e' installato: python --version


    se si dovesse installare pip: python -m ensurepip --default-pip



    per aggiornare pip: python -m pip install -U pip



    per installare un modulo o package: pip install <module_name> oppure python -m pip install <module_name> (che differenza c'e' fra i due comandi?)


    Mac o Linux
    per verificare se pip e' installato: python3 --version (perche' Python3 e non solo python?)

    se si dovesse installare pip: sudo easy_install pip

    per aggiornare pip: pip install -U pip

    per installare un modulo o package : pip install <module-name> oppure python -m pip install <module_name>






    --- Ultima modifica di Confuso83 in data 2021-02-19 14:43:13 ---


    --- Ultima modifica di Confuso83 in data 2021-02-19 14:44:25 ---
  • Metodi Speciali - cosa sono?
    Forum >> Principianti
    Salve a tutti,
    Sto cercando di capire esattamente cosa sono i metodi speciali. Prima di tutti sono metodi, cioe' funzioni definite all'interno di una classe (almeno cosi' la vedo).

    In Python ci sono tante parole risevate (keywords) e funzioni built-in (come print(), add(), type(), ecc).

    Questi metodi speciali sono metodi "predefiniti" che possono essere usati all'interno di una classe che si definisce ed appartengono a classi predefinite internamente a Python. Ho capito correttamente? Questo perche' i metodi speciali sono essenzialmente invocati implicitamente quando si usano le funzioni built-in.

    Ma a cosa servono essattamente all'interno di una classe? Per esempio, __init__ puo' essere usato o meno dentro una classe. Se non si include __init__, penso che il metodo venga comunque invocato indirettamente?

    Ecco alcuni esempi: __main__ , __str__ , __new__




    Grazie,

    Confuso83