Примеры практического использования NumPy

Основные направления использования библиотеки NumPy

NumPy является одной из основных библиотек в экосистеме Python для научных вычислений. Её возможности находят применение в самых разнообразных областях. Вот несколько примеров практического использования.

Обработка данных

  • Чтение и запись данных в различных форматах (CSV, Excel и других).
  • Преобразование данных: нормализация, масштабирование и т. д.
# Чтение CSV файла в массив NumPy
data = np.genfromtxt('data.csv', delimiter=',', skip_header=1)
# Нормализация данных
normalized_data = (data - np.mean(data)) / np.std(data)

Линейная алгебра

  • Вычисление обратных матриц, определителей, собственных значений и векторов.
  • Решение систем линейных уравнений.
A = np.array([[1, 2], [3, 4]])
# Вычисление обратной матрицы
inv_A = np.linalg.inv(A)

Статистика

  • Расчет статистических показателей: среднее, медиана, стандартное отклонение и т. д.
  • Генерация выборок из различных вероятностных распределений.
# Расчет среднего и стандартного отклонения массива
mean = np.mean(data)
std_dev = np.std(data)

Обработка изображений

  • Преобразование изображений: повороты, масштабирование, обрезка.
  • Применение фильтров и масок.
# Применение вертикального фильтра к изображению
image = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]])
filter = np.array([[-1], [0], [1]])
convoluted = np.convolve(image[:,1], filter[:,0], 'same')

Машинное обучение

  • Реализация алгоритмов обучения и их оптимизация с использованием операций NumPy.
  • Препроцессинг данных перед обучением моделей.
# Разделение данных на обучающую и тестовую выборки
train_data = data[:800]
test_data = data[800:]

Симуляции и моделирование

  • Симуляции физических процессов или экономических моделей.
  • Решение дифференциальных уравнений.
# Простое моделирование брошенного камня вверх
g = 9.81  # ускорение свободного падения
v0 = 10  # начальная скорость
t = np.linspace(0, 2*v0/g, 100)
y = v0*t - 0.5*g*t**2

Сигнальная обработка

  • Фильтрация и преобразование сигналов.
  • Применение преобразования Фурье для анализа частотных характеристик сигналов.
# Преобразование Фурье сигнала
signal = np.sin(2 * np.pi * 7 * np.linspace(0, 1, 200))
fft_result = np.fft.fft(signal)

Генерация данных

  • NumPy позволяет легко генерировать различные наборы данных — равномерно распределенные, нормально распределенные и т. д.
uniform_data = np.random.rand(100, 100)
normal_data = np.random.randn(100, 100)

Заключение

Это лишь вершина айсберга того, что можно делать с NumPy. Библиотека стала стандартом де-факто в области научных вычислений на Python благодаря своей производительности, эффективности и интеграции с другими инструментами. Независимо от того, занимаетесь ли вы обработкой данных, физикой, биологией, финансами или любой другой областью науки, NumPy вероятно окажется вашим ценным помощником.

Содержание: