Привет! В прошлой статье мы установили NumPy и создали первый массив. Теперь давай подробно разберём все способы создания массивов в NumPy.
В этой статье мы разберём:
array()— из списка или кортежаzeros()— массив из нулейones()— массив из единицarange()— последовательность чиселlinspace()— равномерно распределённые точки
- Что нужно знать перед началом
- Основная часть
- array() — создание из списка
- zeros() — массив из нулей
- ones() — массив из единиц
- arange() — последовательность чисел
- linspace() — равномерно распределённые точки
- full() — массив с одинаковым значением
- eye() — единичная матрица
- empty() — неинициализированный массив
- Сравнение функций
- Задачи для закрепления
- Шпаргалка
- Заключение
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный NumPy
- Базовое понимание списков
Совет: Умение создавать массивы разными способами — основа работы с NumPy.
Основная часть
array() — создание из списка
array() — самый универсальный способ. Превращает список (или кортеж) в массив NumPy.
import numpy as np
# Из списка
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1) # [1 2 3 4 5]
# Из кортежа
arr2 = np.array((10, 20, 30))
print(arr2) # [10 20 30]
# С указанием типа данных
arr3 = np.array([1, 2, 3], dtype=float)
print(arr3) # [1. 2. 3.]
# Многомерный массив
arr4 = np.array([[1, 2], [3, 4]])
print(arr4)
# [[1 2]
# [3 4]]Совет:
array()копирует данные. Изменения в исходном списке не влияют на массив.
zeros() — массив из нулей
zeros() создаёт массив, заполненный нулями.
# Одномерный массив из 5 нулей
zeros1 = np.zeros(5)
print(zeros1) # [0. 0. 0. 0. 0.]
# Двумерный массив 2x3
zeros2 = np.zeros((2, 3))
print(zeros2)
# [[0. 0. 0.]
# [0. 0. 0.]]
# Трёхмерный массив 2x2x2
zeros3 = np.zeros((2, 2, 2))
print(zeros3)Совет: По умолчанию тип данных —
float64. Можно указать другой:
zeros_int = np.zeros(5, dtype=int)
print(zeros_int) # [0 0 0 0 0]ones() — массив из единиц
ones() создаёт массив, заполненный единицами.
# Одномерный массив из 4 единиц
ones1 = np.ones(4)
print(ones1) # [1. 1. 1. 1.]
# Двумерный массив 3x2
ones2 = np.ones((3, 2))
print(ones2)
# [[1. 1.]
# [1. 1.]
# [1. 1.]]Совет:
ones()часто используется для создания матриц с единичными значениями.
arange() — последовательность чисел
arange() работает как range(), но возвращает массив NumPy.
# От 0 до 9
arr1 = np.arange(10)
print(arr1) # [0 1 2 3 4 5 6 7 8 9]
# От 2 до 9
arr2 = np.arange(2, 10)
print(arr2) # [2 3 4 5 6 7 8 9]
# С шагом 2
arr3 = np.arange(0, 10, 2)
print(arr3) # [0 2 4 6 8]
# С отрицательным шагом
arr4 = np.arange(10, 0, -1)
print(arr4) # [10 9 8 7 6 5 4 3 2 1]
# С дробным шагом
arr5 = np.arange(0, 1, 0.2)
print(arr5) # [0. 0.2 0.4 0.6 0.8]Важно:
arange()не включает конечное значение, как иrange().
linspace() — равномерно распределённые точки
linspace() создаёт массив из определённого количества точек между началом и концом.
# 5 точек от 0 до 10
arr1 = np.linspace(0, 10, 5)
print(arr1) # [0. 2.5 5. 7.5 10. ]
# 3 точки от 0 до 1
arr2 = np.linspace(0, 1, 3)
print(arr2) # [0. 0.5 1. ]
# Включая конечную точку (по умолчанию True)
arr3 = np.linspace(0, 1, 3, endpoint=False)
print(arr3) # [0. 0.33333333 0.66666667]Совет:
linspace()удобен для создания последовательностей с известным количеством точек.
full() — массив с одинаковым значением
# Массив из 5 троек
arr1 = np.full(5, 3)
print(arr1) # [3 3 3 3 3]
# Матрица 2x3 со значением 7
arr2 = np.full((2, 3), 7)
print(arr2)
# [[7 7 7]
# [7 7 7]]eye() — единичная матрица
# Единичная матрица 3x3
eye = np.eye(3)
print(eye)
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
# Единичная матрица 2x3 (нестандартная)
eye2 = np.eye(2, 3)
print(eye2)
# [[1. 0. 0.]
# [0. 1. 0.]]empty() — неинициализированный массив
# Быстрое создание с мусорными значениями
empty = np.empty(5)
print(empty) # [1.2e-316 1.2e-316 ...] (зависит от памяти)Сравнение функций
| Функция | Назначение | Пример |
|---|---|---|
array() | Из списка/кортежа | np.array([1, 2, 3]) |
zeros() | Массив из нулей | np.zeros(5) |
ones() | Массив из единиц | np.ones((2, 3)) |
arange() | Последовательность чисел | np.arange(0, 10, 2) |
linspace() | Равномерные точки | np.linspace(0, 1, 5) |
full() | Одинаковое значение | np.full(5, 7) |
eye() | Единичная матрица | np.eye(3) |
empty() | Неинициализированный | np.empty(5) |
Задачи для закрепления
Задача 1. Создай массив из списка [5, 10, 15, 20].
Задача 2. Создай массив из 6 нулей.
Задача 3. Создай матрицу 2×4 из единиц.
Задача 4. Создай последовательность от 5 до 20 с шагом 3.
Задача 5. Создай 4 равномерные точки от 0 до 10.
Ответы:
Задача 1.
import numpy as np
arr = np.array([5, 10, 15, 20])
print(arr)Задача 2.
zeros = np.zeros(6)
print(zeros)Задача 3.
ones = np.ones((2, 4))
print(ones)Задача 4.
arr = np.arange(5, 21, 3)
print(arr) # [5 8 11 14 17 20]Задача 5.
points = np.linspace(0, 10, 4)
print(points) # [0. 3.33333333 6.66666667 10. ]Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Из списка | np.array([1, 2, 3]) |
| Нули | np.zeros(5) или np.zeros((2, 3)) |
| Единицы | np.ones(5) или np.ones((2, 3)) |
| Последовательность | np.arange(0, 10, 2) |
| Равномерные точки | np.linspace(0, 1, 5) |
| Одинаковое значение | np.full(5, 7) |
| Единичная матрица | np.eye(3) |
Заключение
Сегодня мы:
- Изучили все способы создания массивов
- Разобрали
array(),zeros(),ones(),arange() - Познакомились с
linspace(),full(),eye(),empty()





