tak.lol

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


numpy.array - создание массива

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, если элемент первого массива больше соответствующего элемента второго массива.
Комментарии к материалу
Комментировать
Ваш комментарий: