0Pricing
Python Academy · Lekcja

Tablice NumPy i dtypes

Proszę tworzyć obiekty ndarray, poznawać dtypes i analizować właściwości tablic.

Tablice NumPy i dtypes to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Czym jest NumPy?

NumPy udostępnia obiekt ndarray — tablicę o stałym typie i ciągłym obszarze pamięci, obsługującą operacje wektorowe o rzędy wielkości szybsze niż w przypadku list Pythona.

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)          # [1 2 3 4 5]
print(arr * 2)      # [ 2  4  6  8 10]   (no Python loop)

Tworzenie tablic

Typowe funkcje tworzące tablice to: np.array(), np.zeros(), np.ones(), np.arange(), np.linspace().

import numpy as np

print(np.zeros((2, 3)))     # 2x3 array of 0.0
print(np.ones(5))           # [1. 1. 1. 1. 1.]
print(np.arange(0, 10, 2))  # [0 2 4 6 8]
print(np.linspace(0, 1, 5)) # [0.   0.25 0.5  0.75 1.  ]

dtypes

Każda tablica NumPy ma jeden dtype. Typowe wartości dtype to: int32, int64, float32, float64, bool, complex128.

import numpy as np

a = np.array([1, 2, 3])           # int64 by default
b = np.array([1.0, 2.0])          # float64
c = np.array([1, 2], dtype=np.float32)

print(a.dtype)  # int64
print(c.dtype)  # float32

Kształt tablicy i ndim

shape to krotka określająca rozmiary poszczególnych wymiarów. ndim to liczba wymiarów. size to łączna liczba elementów.

import numpy as np

m = np.ones((3, 4))
print(m.shape)   # (3, 4)
print(m.ndim)    # 2
print(m.size)    # 12
print(m.dtype)   # float64

Zmiana kształtu

reshape() zwraca widok o nowym kształcie (z tymi samymi danymi). flatten() zwraca kopię jako tablicę jednowymiarową.

import numpy as np

arr = np.arange(12)
mat = arr.reshape(3, 4)
print(mat)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
print(mat.flatten())   # [ 0  1  2  3 ...]

Rzutowanie typów

Za pomocą arr.astype(dtype) można przekonwertować tablicę na inny typ. Ta metoda zawsze zwraca kopię.

import numpy as np

arr = np.array([1, 2, 3])
float_arr = arr.astype(np.float64)
print(float_arr)   # [1. 2. 3.]
print(float_arr.dtype)   # float64

Tablice losowe

Tablice losowe można generować za pomocą np.random: o rozkładzie jednostajnym, normalnym lub zawierające liczby całkowite.

import numpy as np

rng = np.random.default_rng(seed=42)   # reproducible
print(rng.random(5))         # 5 uniform [0,1)
print(rng.standard_normal(3)) # 3 normal(0,1)
print(rng.integers(1, 10, 4)) # 4 ints [1,10)

Sprawdzanie pamięci tablicy

itemsize podaje liczbę bajtów na element, a nbytes — łączną liczbę bajtów.

import numpy as np

arr = np.zeros(1_000_000, dtype=np.float64)
print(arr.itemsize)   # 8
print(arr.nbytes)     # 8_000_000 (8 MB)

small = arr.astype(np.float32)
print(small.nbytes)   # 4_000_000 (4 MB)

np.empty i np.full

np.empty alokuje pamięć bez inicjalizowania jej (szybko). np.full wypełnia tablicę stałą wartością.

import numpy as np

e = np.empty((2,3))          # uninitialised — random garbage values
f = np.full((2,3), fill_value=7)
print(f)
# [[7 7 7]
#  [7 7 7]]

Kopia a widok

Wycinanie fragmentu tablicy NumPy zwraca widok (bez tworzenia kopii). Modyfikowanie widoku modyfikuje oryginał. Aby utworzyć niezależną tablicę, należy użyć .copy().

import numpy as np

arr = np.array([1, 2, 3, 4])
view = arr[1:3]
view[0] = 99
print(arr)    # [ 1 99  3  4]  — original changed!

copy = arr[1:3].copy()
copy[0] = 0
print(arr)    # unchanged

Tablice strukturalne

Tablice strukturalne przechowują heterogeniczne dane (podobnie jak struktura C) w pojedynczym obiekcie ndarray z nazwanymi polami.

import numpy as np

dt = np.dtype([('name', 'U10'), ('age', np.int32), ('score', np.float64)])
people = np.array([
    ('Alice', 30, 95.5),
    ('Bob',   25, 87.3),
], dtype=dt)
print(people['name'])   # ['Alice' 'Bob']

Szybkie sprawdzenie

Co zwraca arr.reshape(3, 4)?

Podsumowanie

Obiekt ndarray biblioteki NumPy to tablica o stałym typie i ciągłym obszarze pamięci. Najważniejsze atrybuty to: shape, dtype, ndim, nbytes. Wycinanie zwraca widoki; aby uzyskać niezależność, należy użyć .copy(). W celu oszczędzania pamięci należy wybrać najmniejszy wystarczający dtype.

Często zadawane pytania

Czy lekcja „Tablice NumPy i dtypes” jest bezpłatna?

Tak — pełny tekst „Tablice NumPy i dtypes” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Tablice NumPy i dtypes”?

Proszę tworzyć obiekty ndarray, poznawać dtypes i analizować właściwości tablic. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Tablice NumPy i dtypes”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tablice NumPy i dtypes
  2. Operacje na tablicach i broadcasting
  3. Indeksowanie, wycinanie i zaawansowane indeksowanie
  4. Algebra liniowa z NumPy
← Powrót do Python Academy