Home » Articole » Articole » Calculatoare » Programare » Python » Matrice în Python – Crearea ndarray din NumPy cu np.arange()

Matrice în Python – Crearea ndarray din NumPy cu np.arange()

postat în: Python 0

Tipul de date pe care îl oferă pachetul NumPy se numește ndarray, care înseamnă „matrice n-dimensională”.

Uneori trebuie să creăm o matrice cu valori la intervale regulate, cum ar fi „toate numerele de la unu la un milion” sau „toate numerele pare între 20 și 50”. Putem folosi funcția arange() a NumPy pentru asta.

În mod normal, transmitem acestei funcții două argumente, astfel:

usa_years = np.arange(1776, 2022)
print(usa_years)
print(usa_years.dtype)
▌ [1776 1777 1778 1779 ... 2018 2019 2020 2021]
▌ int64

Dacă citești cu atenție codul și rezultatul, ar trebui să fii surprins. Am cerut elemente în intervalul 1776 – 2022 și am obținut… 1776 până la 2021. Nu-i așa?

Bun venit la una dintre micile idiosincrazii Python. Când folosești arange() obții o matrice de elemente care începe cu primul argument și continuă până la ultimul număr, dar nu include ultimul număr. Există un motiv pentru care Python și NumPy au decis să procedeze în acest fel[1], dar deocamdată este doar un alt lucru aleatoriu de memorat. Dacă uiți, este probabil să primești o „OBOE” – care înseamnă „eroare off-by-one” – o eroare comună de programare în care faci aproape ceea ce trebuie, dar execuți o operațiune mai puțin sau mai mult decât ai vrut.

În orice caz, în afară de această eroare, poți vedea că funcția a făcut un lucru util. Putem genera rapid matrice spațiate regulat cu orice interval de valori dorim. Prin includerea unui al treilea argument, putem chiar specifica dimensiunea pasului (intervalul dintre fiecare pereche de valori):

twentieth_century_decades = np.arange(1900, 2010, 10)
prez_elections = np.arange(1788, 2024, 4)
print(twentieth_century_decades)
print(prez_elections)
▌ [1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000]
▌ [1788 1792 1796 1800 ... 2008 2012 2016 2020]

Observați că a trebuit să specificăm 2010 și 2024 ca al doilea argument pentru aceste apeluri de funcții pentru ca matricele să includă 2000, și 2020, respectiv. Acesta este același comportament „până la, dar fără a include punctul final”, dar extins la dimensiuni ale pașilor mai mari decât unu.

Nota

[1] Se spune că anumite operații comune sunt „mai simple” atunci când faci o funcție de interval să funcționeze în acest fel. Personal, nu cred asta: cred că ar trebui să funcționeze așa cum probabil te-ai așteptat (inclusiv al doilea argument). Totuși, nu am primit un vot.

Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2025 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Horia Hulubei în laboratorul său
Descoperirea astatinului de Horia Hulubei

The discovery of astatine by Horia Hulubei Abstract The search for new chemical elements was a prominent scientific endeavor in the late 19th and early 20th centuries. This era saw the discovery of several elements such as radium, polonium and … Citeşte mai mult

Nu a fost votat 0.00 lei Adaugă în coș
Fizica fenomenologică - Compendiu - Volumul 2
Fizica fenomenologică – Compendiu – Volumul 2

Descoperă universul fizicii printr-o perspectivă fenomenologică captivantă!

Nu a fost votat Interval de prețuri: 45.89 lei până la 162.44 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Rolul Armatei Române în actul de la 23 august 1944
Rolul Armatei Române în actul de la 23 august 1944

Descoperă o perspectivă captivantă asupra istoriei României în Al Doilea Război Mondial!

Nu a fost votat Interval de prețuri: 0.00 lei până la 15.21 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *