0Pricing
Pandas & NumPy Academy · Урок

Создание массивов NumPy

Создайте одномерные и двумерные массивы с помощью np.array, np.zeros, np.ones и np.arange, а затем изучите их форму и тип данных

«Создание массивов NumPy» — бесплатный урок Pandas & NumPy Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Pandas & NumPy Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Pandas & NumPy Academy содержит 4 уроков всего.

What Is a NumPy Array?

NumPy — это основная библиотека Python для сложных вычислений. Её ядром является ndarray — массив однотипных значений, который работает гораздо быстрее и эффективнее, чем обычный список.

import numpy as np

# NumPy arrays are fast, typed, and memory-efficient
print(np.__version__)

Creating Arrays from Lists

Самый простой способ создать массив: передать список в np.array(). NumPy подберет dtype за вас, а список списков превратится в двумерную матрицу.

import numpy as np

a = np.array([1, 2, 3, 4, 5])
print(a)          # [1 2 3 4 5]
print(a.dtype)    # int64

m = np.array([[1, 2, 3], [4, 5, 6]])
print(m.shape)    # (2, 3)

np.zeros and np.ones

Нужен чистый лист? np.zeros заполняет массив нулями (0.0), а np.ones — единицами (1.0); это идеально подходит для инициализации массива перед вычислением его реальных значений.

import numpy as np

z = np.zeros(5)
print(z)          # [0. 0. 0. 0. 0.]

o = np.ones((3, 4))
print(o.shape)    # (3, 4)
print(o.dtype)    # float64

np.arange for Integer Sequences

np.arange работает так же, как функция range в Python, но возвращает массив. Укажите начальное значение, конечное значение и шаг — конечное значение не включается.

import numpy as np

a = np.arange(0, 10, 2)
print(a)   # [0 2 4 6 8]

b = np.arange(1.0, 2.0, 0.25)
print(b)   # [1.   1.25 1.5  1.75]

np.linspace for Evenly-Spaced Floats

Нужны равномерно распределенные числа с плавающей запятой? np.linspace позволяет получить заданное количество значений между двумя конечными точками, включая обе — без погрешностей округления.

import numpy as np

x = np.linspace(0, 1, 5)
print(x)   # [0.   0.25 0.5  0.75 1.  ]

y = np.linspace(0, 360, 7)
print(y)   # [  0.  60. 120. 180. 240. 300. 360.]

np.full and np.eye

Используйте np.full для заполнения массива любой константой, а np.eye — для создания единичной матрицы, в которой по главной диагонали стоят единицы, а остальные элементы равны нулю.

import numpy as np

f = np.full((2, 3), 7)
print(f)
# [[7 7 7]
#  [7 7 7]]

I = np.eye(3)
print(I)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

Specifying dtype at Creation

У каждого массива есть один dtype для всех его значений. Вы можете задать его самостоятельно с помощью параметра dtype= — например, выбор float32 вместо float64 может сократить потребление памяти вдвое.

import numpy as np

a = np.array([1, 2, 3], dtype=np.float32)
print(a.dtype)     # float32
print(a.nbytes)    # 12  (3 elements x 4 bytes)

b = np.zeros(4, dtype=np.int32)
print(b.dtype)     # int32

Random Arrays with np.random

Нужны случайные данные? np.random сгенерирует их для вас. Сначала установите seed, чтобы получать одни и те же числа при каждом запуске — это важно для воспроизводимых экспериментов. 🎲

import numpy as np

np.random.seed(42)
u = np.random.rand(3, 3)   # uniform [0, 1)
print(u)

n = np.random.randn(5)     # standard normal
print(n.round(2))

Checking Array Shape and Dimensions

После создания массива вы обычно проверяете его форму (shape) — кортеж размеров по каждой из размерностей. Используйте .ndim, чтобы узнать количество измерений.

import numpy as np

a = np.arange(12)
print(a.shape)   # (12,)
print(a.ndim)    # 1

m = a.reshape(3, 4)
print(m.shape)   # (3, 4)
print(m.ndim)    # 2

Converting Lists and Tuples

Функция np.array() принимает не только списки — кортежи, диапазоны и даже другие массивы также подходят. Просто избегайте неравномерных вложенных списков, так как они снижают скорость работы NumPy.

import numpy as np

# From tuple
t = np.array((10, 20, 30))
print(t)   # [10 20 30]

# From range
r = np.array(range(5))
print(r)   # [0 1 2 3 4]

# Nested lists -> 2D
m = np.array([[1, 2], [3, 4], [5, 6]])
print(m.shape)  # (3, 2)

np.empty for Uninitialised Arrays

np.empty выделяет память, не заполняя её, поэтому работает немного быстрее, чем zeros. Подвох в том, что в ней содержатся «мусорные» данные — всегда записывайте значения перед чтением.

import numpy as np

buf = np.empty(5)
# Values are garbage — do NOT read before writing
for i in range(5):
    buf[i] = i * 2
print(buf)  # [0. 2. 4. 6. 8.]

Quick Check

Проверьте свое понимание создания массивов NumPy из этого урока.

Lesson Recap

Отличная работа! Вы можете превращать списки в массивы с помощью np.array() и создавать их с нуля, используя zeros, ones, arange и linspace. Далее: атрибуты массивов.

Часто задаваемые вопросы

Урок «Создание массивов NumPy» бесплатный?

Да — полный текст урока «Создание массивов NumPy» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Pandas & NumPy Academy, подпишись на CoddyKit PRO. Курс Pandas & NumPy Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание массивов NumPy»?

Создайте одномерные и двумерные массивы с помощью np.array, np.zeros, np.ones и np.arange, а затем изучите их форму и тип данных Ты практикуешь Pandas & NumPy Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Pandas & NumPy Academy?

Предыдущий опыт не требуется. Pandas & NumPy Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание массивов NumPy»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Pandas & NumPy Academy?

Да. Каждый урок Pandas & NumPy Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание массивов NumPy
  2. Атрибуты и проверка массивов
  3. Поэлементная арифметика
  4. Срезы и индексация массивов
← Назад к Pandas & NumPy Academy