Массив
Давай погрузимся в мир массивов с помощью NumPy! Если ты думал, что массивы — это просто набор чисел, то ты сильно недооценивал их мощь. Массивы — это как швейцарский нож для программиста: всегда под рукой и готовы помочь в любой ситуации. Итак, поехали!
Что такое массивы?
Массивы — это структуры данных, которые позволяют хранить множество элементов одного типа. В Python мы обычно используем списки, но если ты хочешь поработать с числовыми данными, NumPy — это твой лучший друг. Он делает работу с массивами не только эффективной, но и приятной.
Создание массивов
Начнем с самого простого: создания массива. Сначала нужно импортировать библиотеку NumPy:
import numpy as np
Теперь давай создадим массив из списка:
my_array = np.array([1, 2, 3, 4, 5])
print(my_array) # Выведет: [1 2 3 4 5]
Вуаля! Мы создали массив. Но что, если нам нужно создать двумерный массив? Легко!
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)
Это выведет:
[[1 2 3]
[4 5 6]]
Размерность и форма
Теперь давай узнаем, как узнать размерность нашего массива. Это можно сделать с помощью атрибута shape. Это как посмотреть на размер одежды: ты же не будешь покупать что-то без размера!
print(matrix.shape) # Выведет: (2, 3)
Это значит, что у нас есть 2 строки и 3 столбца. Если бы это была одежда, мы бы точно выбрали размер "двойка".
Операции с массивами
Теперь о самом интересном: операциях с массивами. Все операции выполняются поэлементно. Например, сложение массивов:
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
sum_array = array1 + array2
print(sum_array) # Выведет: [5 7 9]
Вот так просто! А если мы хотим возвести каждый элемент в квадрат? Легко!
squared_array = array1 ** 2
print(squared_array) # Выведет: [1 4 9]
Теперь представь, что у тебя есть массив температур в градусах Цельсия, и ты хочешь перевести их в Фаренгейты. Просто умножь на коэффициент и добавь константу!
celsius = np.array([0, 20, 37])
fahrenheit = celsius * 9/5 + 32
print(fahrenheit) # Выведет: [32. 68. 98.6]
Индексация и срезы
Как и в списках, в массивах NumPy можно использовать индексацию и срезы. Хочешь получить первый элемент массива? Легко!
firstelement = myarray[0]
print(first_element) # Выведет: 1
А теперь получим элементы от второго до четвертого (не включая четвертый):
slicearray = myarray[1:4]
print(slice_array) # Выведет: [2 3 4]
Функции для работы с массивами
NumPy предлагает множество полезных функций для работы с массивами. Например:
- np.zeros(shape): создает массив, заполненный нулями.
- np.ones(shape): создает массив, заполненный единицами.
- np.arange(start, stop, step): создает массив с заданным диапазоном значений.
Вот пример создания массива из нулей:
zeros_array = np.zeros((3, 4)) # Массив 3x4
print(zeros_array)
Это выведет:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
Согласись, выглядит впечатляюще! А теперь представь, что ты собираешься создать массив из чисел от 0 до 9:
range_array = np.arange(10)
print(range_array) # Выведет: [0 1 2 3 4 5 6 7 8 9]
Легко и быстро!
Примеры
Пример 1: Основные операции с массивами
В этом примере мы создадим два массива и выполним с ними несколько базовых операций.
import numpy as np
# Создаем два массива
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([10, 20, 30, 40, 50])
# Сложение массивов
sum_array = array1 + array2
print("Сумма массивов:", sum_array) # Вывод: [11 22 33 44 55]
# Умножение массивов
product_array = array1 * array2
print("Произведение массивов:", product_array) # Вывод: [10 40 90 160 250]
Пример 2: Срезы и индексация
В этом примере мы будем использовать индексацию и срезы для извлечения данных из массива.
import numpy as np
# Создаем массив
data = np.array([5, 10, 15, 20, 25, 30])
# Извлекаем первый элемент
first_element = data[0]
print("Первый элемент:", first_element) # Вывод: 5
# Извлекаем элементы с 2-го по 4-й (не включая 4-й)
slice_data = data[1:4]
print("Срез данных:", slice_data) # Вывод: [10 15 20]
Пример 3: Визуализация данных
В этом примере мы создадим график функции y = x² с использованием NumPy для создания массива значений x и Matplotlib для визуализации.
import numpy as np
import matplotlib.pyplot as plt
# Создаем массив значений x от -10 до 10
x = np.linspace(-10, 10, 100) # 100 точек от -10 до 10
y = x ** 2 # y = x^2
# Создаем график
plt.figure(figsize=(8, 6))
plt.plot(x, y, label='y = x^2', color='blue')
plt.title('График функции y = x^2')
plt.xlabel('x')
plt.ylabel('y')
plt.axhline(0, color='black',linewidth=0.5, ls='--')
plt.axvline(0, color='black',linewidth=0.5, ls='--')
plt.grid(color = 'gray', linestyle = '--', linewidth = 0.5)
plt.legend()
plt.show()