tak.lol
27 ноябрь 2024
7
0
Не нравится 0 Нравится

Библиотека NumPy

Давай погрузимся в мир NumPy — библиотеки, которая делает жизнь программиста машинного обучения проще и веселее. Если ты когда-нибудь пытался работать с массивами в Python, ты знаешь, что стандартные списки не всегда подходят для серьезных вычислений. Вот тут-то и приходит на помощь NumPy!



Что такое NumPy?


NumPy (Numerical Python) — это библиотека для работы с многомерными массивами и матрицами, а также с большим набором математических функций для выполнения операций над этими массивами. Если ты думаешь, что это просто еще одна библиотека, то ты глубоко ошибаешься! Это как швейцарский нож для научных вычислений в Python.



Установка NumPy


Установить NumPy можно с помощью pip, как будто ты заказываешь пиццу:


pip install numpy


Основы работы с массивами


Давай начнем с создания массива. В NumPy массивы называются ndarray, и они намного быстрее и эффективнее, чем обычные списки Python. Например:



import numpy as np

#Создаем одномерный массив

a = np.array([1, 2, 3])
print(a)  # [1 2 3]


Согласись, это выглядит довольно просто! Но давай добавим немного магии. Как насчет того, чтобы создать двумерный массив? Это как создать свой собственный маленький мир:



#Создаем двумерный массив

b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
#[[1 2 3]

#[4 5 6]]




Операции с массивами


Теперь, когда у нас есть массивы, давай посмотрим, как можно с ними работать. Например, сложение массивов — это как добавление друзей к твоему списку:



c = np.array([10, 20, 30])
d = a + c
print(d)  # [11 22 33]



А что насчет умножения? Это как попытаться поднять тяжести в спортзале:



e = a * 2
print(e)  # [2 4 6]



Функции и методы NumPy


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



mean_value = np.mean(a)
print(f"Среднее значение: {mean_value}")  # Среднее значение: 2.0



Или, если ты хочешь найти максимум и минимум в массиве, просто используй:



max_value = np.max(b)
min_value = np.min(b)
print(f"Максимум: {maxvalue}, Минимум: {minvalue}")  # Максимум: 6, Минимум: 1



Индексация и срезы


Не забывай про индексацию! Это как искать нужную страницу в книге:



print(b[0, 1])  # Выводит 2
print(b[:, 1])  # Выводит все элементы второго столбца: [2 5]



Маскирование и фильтрация данных


Иногда мы хотим отфильтровать данные. Это похоже на то, как ты выбираешь только те фрукты в магазине, которые тебе нравятся:



mask = a > 1
filtered_a = a[mask]
print(filtered_a)  # [2 3]



Пример использования NumPy на Python



import numpy as np
import matplotlib.pyplot as plt

# Шаг 1: Создание массивов с данными о росте и весе
np.random.seed(0)  # Для воспроизводимости
heights = np.random.normal(loc=170, scale=10, size=100)  # Рост в см
weights = np.random.normal(loc=70, scale=15, size=100)   # Вес в кг

# Шаг 2: Анализ данных
mean_height = np.mean(heights)
median_height = np.median(heights)
std_height = np.std(heights)

mean_weight = np.mean(weights)
median_weight = np.median(weights)
std_weight = np.std(weights)

print(f"Рост: Средний = {mean_height:.2f} см, Медиана = {median_height:.2f} см, Стандартное отклонение = {std_height:.2f} см")
print(f"Вес: Средний = {mean_weight:.2f} кг, Медиана = {median_weight:.2f} кг, Стандартное отклонение = {std_weight:.2f} кг")

# Шаг 3: Визуализация данных
plt.figure(figsize=(12, 5))

# График роста
plt.subplot(1, 2, 1)
plt.hist(heights, bins=15, color='skyblue', edgecolor='black')
plt.axvline(mean_height, color='red', linestyle='dashed', linewidth=1, label='Средний рост')
plt.axvline(median_height, color='green', linestyle='dashed', linewidth=1, label='Медианный рост')
plt.title('Распределение роста')
plt.xlabel('Рост (см)')
plt.ylabel('Частота')
plt.legend()

# График веса
plt.subplot(1, 2, 2)
plt.hist(weights, bins=15, color='lightgreen', edgecolor='black')
plt.axvline(mean_weight, color='red', linestyle='dashed', linewidth=1, label='Средний вес')
plt.axvline(median_weight, color='green', linestyle='dashed', linewidth=1, label='Медианный вес')
plt.title('Распределение веса')
plt.xlabel('Вес (кг)')
plt.ylabel('Частота')
plt.legend()

plt.tight_layout()
plt.show()


Описание кода:
1. Создание массивов: Мы создаем два массива: heights (рост) и weights (вес) с использованием нормального распределения. Параметры loc и scale задают среднее значение и стандартное отклонение соответственно.

2. Анализ данных: Мы используем функции NumPy для вычисления среднего значения (mean), медианы (median) и стандартного отклонения (std) для обоих массивов.

3. Визуализация: Мы создаем два гистограммы для роста и веса. На каждом графике добавляем вертикальные линии для обозначения среднего и медианного значений.

Результат:
Когда вы запустите этот код, вы увидите два графика, показывающих распределение роста и веса в вашей выборке. Вы также получите статистические характеристики в консоли.

Интересные факты о NumPy



  • NumPy был создан в начале 2000-х годов и стал основой для многих других библиотек, таких как Pandas и SciPy.

  • NumPy использует C для выполнения операций, что делает его невероятно быстрым. Так что если ты когда-нибудь чувствовал себя медленным, просто вспомни о NumPy!

  • Существует огромное сообщество разработчиков, которые постоянно улучшают и развивают эту библиотеку.



Заключение


NumPy — это не просто библиотека; это настоящая находка для программистов машинного обучения. С его помощью ты сможешь обрабатывать данные быстрее и эффективнее. Так что не стесняйся использовать его в своих проектах!

Комментарии к материалу
Комментировать
Ваш комментарий: