Создание массивов: array(), zeros(), ones(), arange()

Создание массивов: array(), zeros(), ones(), arange() NumPy

Привет! В прошлой статье мы установили NumPy и создали первый массив. Теперь давай подробно разберём все способы создания массивов в NumPy.

В этой статье мы разберём:

  • array() — из списка или кортежа
  • zeros() — массив из нулей
  • ones() — массив из единиц
  • arange() — последовательность чисел
  • linspace() — равномерно распределённые точки

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный 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()

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×