numpy.array - создание массива
Итак, numpy.array — это основа библиотеки NumPy, которая позволяет работать с многомерными массивами. Представь себе, что ты хочешь создать матрицу или многомерный массив. С обычными списками это было бы как пытаться сделать салат из огурцов с помощью молотка. С numpy.array это просто: раз, два и готово!
Создание массива
Создание массива с помощью numpy — это проще простого. Вот несколько способов:
- Из списка:
import numpy as np
my_list = [1, 2, 3, 4, 5]
arrayfromlist = np.array(my_list)
print(arrayfromlist) # [1 2 3 4 5]
- С помощью функции arange:
array_range = np.arange(10) # Массив от 0 до 9
print(array_range) # [0 1 2 3 4 5 6 7 8 9]
- С заполнением нулями или единицами:
zeros_array = np.zeros((3, 4)) # Массив 3x4, заполненный нулями
print(zeros_array)
#[[0. 0. 0. 0.]
#[0. 0. 0. 0.]
#[0. 0. 0. 0.]]
ones_array = np.ones((2, 3)) # Массив 2x3, заполненный единицами
print(ones_array)
#[[1. 1. 1.]
#[1. 1. 1.]]
Основные операции с массивами
Теперь, когда у нас есть массивы, давай посмотрим, что мы можем с ними делать. Операции с массивами в NumPy — это как магия: просто добавляй, умножай и делай все, что угодно!
- Сложение массивов:
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
sum_array = array1 + array2
print(sum_array) # [5 7 9]
- Умножение на скаляр:
scaled_array = array1 * 10
print(scaled_array) # [10 20 30]
Математические операции
NumPy предлагает множество математических функций. Например:
- Среднее значение:
mean_value = np.mean(array1)
print(mean_value) # 2.0
- Стандартное отклонение:
std_dev = np.std(array1)
print(std_dev) # Стандартное отклонение
Индексация и срезы
Срезы в numpy.array — это как резать пиццу: ты можешь взять кусочек, а можешь взять целую половину!
- Индексация:
array = np.array([10, 20, 30, 40, 50])
print(array[2]) # 30
- Срезы:
slice_array = array[1:4] # Берем элементы с индекса 1 по индекс 3
print(slice_array) # [20 30 40]
Многомерные массивы
Теперь давай поговорим о многомерных массивах. Это как многослойный торт: каждый слой — это отдельный массив!
matrix = np.array([[1, 2], [3, 4]])
print(matrix)
#[[1 2]
#[3 4]]
#Доступ к элементам
print(matrix[0, 1]) # Выводит: 2
Пример на Python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
# Настройки
num_points = 10 # Количество танцоров
num_frames = 100 # Количество кадров анимации
radius = 1 # Радиус круга
# Генерация начальных углов для танцоров
angles = np.linspace(0, 2 * np.pi, num_points)
# Создание фигуры и осей
fig, ax = plt.subplots(figsize=(6, 6))
ax.set_xlim(-1.5 * radius, 1.5 * radius)
ax.set_ylim(-1.5 * radius, 1.5 * radius)
ax.set_aspect('equal')
ax.axis('off') # Отключение осей
# Создание точек танцоров
points, = ax.plot([], [], 'o', markersize=10, color='blue')
# Функция инициализации
def init():
points.set_data([], [])
return points,
# Функция обновления для анимации
def update(frame):
# Обновление углов для движения по кругу
new_angles = angles + frame * 0.1 # Увеличиваем угол для создания движения
x = np.array(radius * np.cos(new_angles)) # X-координаты с использованием numpy.array
y = np.array(radius * np.sin(new_angles)) # Y-координаты с использованием numpy.array
points.set_data(x, y)
return points,
# Создание анимации
ani = animation.FuncAnimation(fig, update, frames=num_frames, init_func=init, blit=True)
# Отображение анимации
plt.title("Танцующие точки!", fontsize=16)
plt.show()
Объяснения кода:
1. Импорт библиотек: Импортируем необходимые библиотеки numpy, matplotlib.pyplot и matplotlib.animation.
2. Настройки:
• Определяем количество "танцоров" (точек) и количество кадров для анимации.
• Устанавливаем радиус круга, по которому будут двигаться точки.
3. Создание фигуры и осей: Создаем график и настраиваем его размеры и пределы.
4. Создание точек танцоров: Инициализируем точки на графике.
5. Функция инициализации: Функция init() устанавливает начальные параметры для анимации.
6. Функция обновления: Функция update(frame) обновляет положение танцоров на каждом кадре, создавая движение по кругу.
7. Создание анимации: Используем FuncAnimation для создания анимации с заданными функциями обновления и инициализации.
8. Отображение анимации: Добавляем заголовок и отображаем анимацию.
Запуск кода
Скопируй этот код в файл с расширением .py или в Jupyter Notebook и запусти его. Ты увидишь забавную анимацию, где точки "танцуют" по кругу!
Интересные факты о NumPy
- NumPy был создан в начале 2000-х годов и стал основой для многих других библиотек, таких как Pandas и SciPy.
- В NumPy все массивы имеют одинаковый тип данных (это называется "гомогенность"), что делает операции более эффективными.
- NumPy использует C для выполнения операций под капотом, что делает его невероятно быстрым по сравнению с обычными списками Python.
Итак, теперь ты знаешь основы работы с numpy.array. Это как открыть ящик с инструментами: у тебя есть все необходимое для работы с данными! Не забывай экспериментировать и открывать новые горизонты с NumPy — ведь программирование должно быть не только полезным, но и веселым!
Задания для закрепления материала
Задание 1
Создайте одномерный массив NumPy из чисел от 0 до 9.
Задание 2
Создайте двумерный массив размером 3x3, заполненный случайными числами от 0 до 100, и выведите его на экран.
Задание 3
Создайте два массива NumPy размером 2x2 и вычислите их произведение.
Задание 4
Создайте одномерный массив из 10 чисел, равномерно распределенных между 0 и 1. Примените к этому массиву функцию np.sqrt.
Задание 5
Создайте два одномерных массива, содержащих по 5 случайных чисел от 1 до 20. Сравните их элементы и создайте новый булевый массив, который будет содержать True, если элемент первого массива больше соответствующего элемента второго массива.