Python Учебное пособие по NumPy для начинающих

⚡ Умное резюме

NumPy — это основополагающий язык. Python Библиотека для численных вычислений, поддерживающая массивы, матрицы, линейную алгебру и случайную выборку. В этом руководстве по NumPy рассматриваются установка, создание массивов и изменение их размера.pingнарезка данных, статистика и матричные вычисления с возможностью запуска Python примеры.

  • Основное назначение: Быстрые N-мерные массивы и векторизованная математика в Python.
  • ⚙️ Ключевые функции: нули, единицы, изменение формы, hstack, точка, linspace.
  • 📚 Foundations: Линейная алгебра, телевещание, статистика, сегментация.
  • 🚀 Текущая версия: NumPy 2.x (выпущен в июне 2024 года) теперь стабилен.
  • 🤖 Использование ИИ: Основа PythonTorтензоры ch, TensorFlow, JAX и CuPy.

Python Учебное пособие по NumPy

Что такое NumPy Python?

NumPy является открытым исходным кодом Python Библиотека для программирования в области математики, науки, инженерии и анализа данных. Это очень полезная библиотека для математических и статистических операций. PythonОн отлично работает с многомерными массивами и матричным умножением, а также легко интегрируется с C/C++ и Fortran.

Для любого научного проекта NumPy — это незаменимый инструмент. Он создан для работы с N-мерными массивами, линейной алгеброй, генерацией случайных чисел, преобразованиями Фурье и многим другим.

NumPy дает Python Первоклассная поддержка многомерных массивов и матриц, а также большой набор математических операций, которые над ними работают. В этом руководстве мы рассмотрим основные функции, которые вам необходимо знать, прежде чем перейти к руководству по «TensorFlow».

Зачем использовать NumPy?

NumPy эффективно использует память, поэтому он может обрабатывать большие объемы числовых данных проще, чем чистый NumPy. Python списки. Также очень удобно для умножения матриц и преобразования формы.pingИ это быстро, потому что ресурсоемкая работа делегируется скомпилированным подпрограммам на языке C. Фактически, такие библиотеки, как TensorFlow, Python,TorБиблиотеки ch и Scikit-learn используют массивы NumPy для матричных вычислений в своей внутренней архитектуре, что делает NumPy незаметной рабочей лошадкой в ​​большинстве современных рабочих процессов обработки данных и искусственного интеллекта.

Как установить NumPy

Для установки библиотеки NumPy обратитесь к нашему руководству. Как установить ТензорФлоу. NumPy устанавливается по умолчанию вместе с Anaconda.

В редких случаях, когда NumPy не установлен, используйте любой из приведенных ниже вариантов.

Вы можете установить NumPy с помощью Anaconda:

conda install -c anaconda numpy
  • In Jupyter Ноутбук:
import sys
!conda install --yes --prefix {sys.prefix} numpy

Пользователи Pip могут установить или обновить программу одной командой:

pip install --upgrade numpy

Импортируйте NumPy и проверьте версию

Команда для импорта numpy:

import numpy as np

Приведённая выше строка переименовывает пространство имён NumPy в npЭтот ярлык позволяет добавлять префикс к функциям, методам и атрибутам NumPy. np. вместо typing numpy.Это стандартное соглашение, которое вы найдете во всей экосистеме NumPy.

Чтобы проверить установленную версию NumPy, используйте следующую команду:

print(np.__version__)

Выход:

2.1.3

NumPy 2.0 был выпущен в июне 2024 года и является текущей стабильной основной серией. Если ваш проект по-прежнему зависит от API версии 1.x, закрепите изменения на... numpy<2 в вашем файле требований, потому что некоторые устаревшие псевдонимы, такие как... np.float были сняты в 2.0 г.

Что такое Python Массив NumPy?

Массивы NumPy выглядят примерно так: Python На первый взгляд, это списки, но на самом деле они ведут себя совершенно по-разному. Для читателей, незнакомых с этой темой, давайте разъясним, что такое ndarray и почему это важно.

Как следует из названия, массив NumPy является центральной структурой данных библиотеки NumPy. Само название является сокращением от «числовой» (Numeric). Pythonили «Числовое Python», а ndarray представляет собой однородный блок памяти фиксированного размера с известной формой и типом данных.

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

Простейший способ создать массив в NumPy — начать с... Python Список.

myPythonList = [1,9,8,3]

Преобразовать Python преобразовать список в массив NumPy, используя np.array.

numpy_array_from_list = np.array(myPythonList)

Отобразить содержимое массива.

numpy_array_from_list

Выход:

array([1, 9, 8, 3])

На практике нет необходимости декларировать Python Сначала составьте список. Эти два шага можно объединить.

a = np.array([1,9,8,3])

ПРИМЕЧАНИЕ: В документации NumPy также упоминается np.ndarray, Но np.array Это рекомендуемая заводская функция для повседневного использования.

Таким же образом можно создать массив NumPy из кортежа.

Математический Operaдействия в массиве

Вы можете выполнять математические операции, такие как сложение и вычитание.tracДеление, деление и умножение массива. Синтаксис: имя массива, за которым следует оператор (+, -, *, /Затем следует операнд. Эти операции векторизованы, что означает, что NumPy применяет их к каждому элементу без явного указания. Python петля.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

numpy_array_from_list + 10

Выход:

array([11, 19, 18, 13])

Эта операция добавляет 10 к каждому элементу массива NumPy.

Форма массива

Форму массива можно проверить с помощью... shape Атрибут, доступ к которому осуществляется путем добавления его к имени массива. Аналогичным образом можно проверить тип с помощью dtype.

import numpy as np
a = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Целое число — это значение без десятичной точки. Если вы создадите массив с десятичными числами, тип данных изменится на float.

#### Different type
b = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2-мерный массив

Размер можно добавить, поставив запятую внутри скобок.

Обратите внимание, что внутренние кортежи должны располагаться внутри внешних скобок. [].

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

3-мерный массив

Аналогичным образом можно построить и измерения более высоких уровней.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Цель Code
Создать массив массив([1,2,3])
распечатать форму массив([.]).форма

Что такое numpy.zeros()?

numpy.zeros () or np.zeros - это Python Функция, используемая для создания матрицы, заполненной нулями. numpy.zeros() Это полезно, когда необходимо инициализировать веса на первой итерации в TensorFlow или настроить буферы-заполнители для других статистических задач.

Синтаксис функции numpy.zeros()

numpy.zeros(shape, dtype=float, order='C')

Python Параметры numpy.zeros()

Здесь,

  • Форма: форма нулевого массива NumPy.
  • Dтип: тип данных элементов. Это необязательный параметр, значение по умолчанию — float64.
  • Оформить заказ: по умолчанию C, которая представляет собой построчную компоновку, используемую numpy.zeros() in Python.

Python Пример numpy.zeros()

import numpy as np
np.zeros((2,2))

Выход:

array([[0., 0.],
          [0., 0.]])

Пример нулевого значения с типом данных

import numpy as np
np.zeros((2,2), dtype=np.int16)

Выход:

array([[0, 0],
         [0, 0]], dtype=int16)

Что такое numpy.ones()?

функция np.ones() создает матрицу, заполненную единицами. numpy.ones() in Python Это полезно при инициализации весов на первой итерации в TensorFlow, а также для других статистических задач.

Python Синтаксис numpy.ones()

numpy.ones(shape, dtype=float, order='C')

Python Параметры numpy.ones()

Здесь,

  • Форма: форма np.ones Python массив.
  • Dтип: тип данных элементов. Это необязательный параметр, значение по умолчанию — float64.
  • Оформить заказ: по умолчанию C, что представляет собой построчную компоновку.

Python numpy.ones() 2D-массив с примером типа данных

import numpy as np
np.ones((1,2,3), dtype=np.int16)

Выход:

array([[[1, 1, 1],
       [1, 1, 1]]], dtype=int16)

функция numpy.reshape() в Python

Python Изменение формы NumPy Изменяет форму массива, не изменяя его данные. Возможно, вам потребуется преобразовать данные из широкого формата в длинный или перейти от одномерного вектора к двумерной матрице перед передачей их в модель. np.reshape Функция обрабатывает это за один вызов.

Синтаксис np.reshape()

numpy.reshape(a, newShape, order='C')

Здесь,

a: массив, форму которого вы хотите изменить.

новая форма: новая желаемая форма.

Оформить заказ: по умолчанию C, построчная компоновка.

Пример изменения формы NumPy

import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

Выход:

 // Before reshape
[[1 2 3]
 [4 5 6]]
//After Reshape
array([[1, 2],
	[3, 4],
	[5, 6]])

numpy.flatten() в Python

Python NumPy Сгладить Возвращает копию массива, свернутую в одномерное представление. При работе с нейронными сетями, такими как сверточные сети, часто необходимо преобразовать тензор изображения в одномерный массив перед передачей его в полносвязный слой. np.flatten() Функция обрабатывает это за один вызов.

Синтаксис np.flatten()

numpy.flatten(order='C')

Здесь,
Оформить заказ: по умолчанию C, построчная компоновка.

Пример выравнивания NumPy

e.flatten()

Выход:

array([1, 2, 3, 4, 5, 6])

Что такое numpy.hstack() в Python?

numpy.hstack - это Python Функция, используемая для горизонтального объединения последовательностей входных массивов в один массив. hstack()Вы добавляете данные вдоль оси столбца. Это очень удобный вспомогательный инструмент в NumPy, когда вам нужно объединить векторы признаков рядом друг с другом.

Давайте учиться hstack in Python с примером.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

## Horizontal Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Horizontal Append:', np.hstack((f, g)))

Выход:

Horizontal Append: [1 2 3 4 5 6]

Что такое numpy.vstack() в Python?

numpy.vstack - это Python Функция, используемая для вертикального объединения последовательностей входных массивов в один массив. vstack()Вы добавляете данные вдоль оси строк, что удобно, когда нужно объединить группы образцов.

Рассмотрим это на примере.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

## Vertical Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Vertical Append:', np.vstack((f, g)))

Выход:

Vertical Append: [[1 2 3]
 [4 5 6]]

После изучения NumPy vstack и hstackДавайте рассмотрим пример генерации случайных чисел в NumPy.

Создать случайный Numbers использование NumPy

Для генерации случайных чисел из гауссова распределения используйте:

numpy.random.normal(loc, scale, size)

Здесь,

  • МестоСреднее значение. Центр распределения.
  • Шкала: стандартное отклонение.
  • Размер: количество возвращенных образцов.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

## Generate random numbers from a normal distribution
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)
[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

При построении графика распределение будет выглядеть примерно так, как показано ниже.

Пример создания случайного числа Numbers использование NumPy
Пример создания случайного числа Numbers использование NumPy

Обратите внимание, что в более новых версиях кода все чаще используется современный API генератора. np.random.default_rng(), которая является рекомендуемой заменой устаревшей версии. np.random.normal вызовы в NumPy 2.x.

Функция Asarray NumPy

asarray() Функция преобразует входные данные в массив. Входными данными может быть список, кортеж, ndarray или аналогичная последовательность.

Синтаксис:

numpy.asarray(data, dtype=None, order=None)

Здесь,

данным: данные, которые вы хотите преобразовать в массив.

тип: необязательный параметр. Если не указан, тип данных определяется на основе входных данных.

Оформить заказ: по умолчанию C, построчная компоновка. Другой вариант — F (Fortra(n-столбцовая колоночная структура).

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Рассмотрим следующую двумерную матрицу с четырьмя строками и четырьмя столбцами, заполненную единицами.

import numpy as np
A = np.matrix(np.ones((4,4)))

Если вы попытаетесь изменить значение в матрице через np.arrayОригинал не изменен. Причина в том, что np.array создает копию матрицы.

np.array(A)[2]=2
print(A)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

Матрица остаётся неизменной. Используйте asarray Когда вы хотите изменить исходный массив на месте. Давайте посмотрим, что произойдет, если вы присвоите третьей строке значение 2.

np.asarray(A)[2]=2
print(A)

Code Объяснение:

np.asarray(A) преобразует матрицу A в представление массива.

[2] Выбирает третью строку.

Выход:

[[1. 1. 1. 1.]
      [1. 1. 1. 1.]
      [2. 2. 2. 2.] # new value
      [1. 1. 1. 1.]]

Что такое numpy.arange()?

numpy.arange() Это встроенная функция NumPy, которая возвращает массив ndarray, содержащий равномерно расположенные значения в заданном интервале. Например, чтобы создать значения от 1 до 10, можно вызвать np.arange() in Python.

Синтаксис:

numpy.arange(start, stop, step, dtype)

Python Параметры диапазона NumPy:

  • Начать: начало интервала для np.arange in Python.
  • Stop: конец интервала.
  • Шаг: расстояние между значениями. Шаг по умолчанию равен 1.
  • Dтип: тип выходного массива для NumPy arange.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import numpy as np
np.arange(1, 11)

Выход:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Чтобы изменить шаг в этом NumPy arange Например, добавьте третье число в скобки. Это изменит размер шага.

import numpy as np
np.arange(1, 14, 4)

Выход:

array([ 1,  5,  9, 13])

Функция NumPy Linspace

linspace Возвращает равномерно расположенные образцы между двумя конечными точками.

Синтаксис:

numpy.linspace(start, stop, num, endpoint)

Здесь,

  • Начать: начальное значение последовательности.
  • Stop: конечное значение последовательности.
  • В: количество образцов для генерации. По умолчанию — 50.
  • Конечная точка: если True (По умолчанию), stop — это последнее значение. Если False, stop не входит

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Например, его можно использовать для создания 10 равномерно расположенных значений от 1 до 5.

import numpy as np
np.linspace(1.0, 5.0, num=10)

Выход:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Если вы не хотите включать последнюю цифру в интервал, установите endpoint в False.

np.linspace(1.0, 5.0, num=5, endpoint=False)

Выход:

array([1. , 1.8, 2.6, 3.4, 4.2])

Функция LogSpace NumPy в Python

logspace Возвращает равномерно расположенные числа в логарифмической шкале. logspace имеет те же параметры, что и np.linspace.

Синтаксис:

numpy.logspace(start, stop, num, endpoint)

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

np.logspace(3.0, 4.0, num=4)

Выход:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

Наконец, если вы хотите проверить размер памяти, занимаемый отдельным элементом массива, вы можете использовать itemsize.

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

Выход:

16

Каждый элемент занимает 16 байт.

Индексирование и нарезка Python

Разделение данных на фрагменты с помощью NumPy — простая задача. Мы разделим матрицу на фрагменты. e. В PythonДля возврата строк или столбцов используются квадратные скобки.
Пример:

## Slice
import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

Помните, что в NumPy первый индекс массива начинается с 0.

## First row
print('First row:', e[0])

## Second row
print('Second row:', e[1])

Выход:

First row: [1 2 3]
Second row: [4 5 6]

In Pythonкак и во многих других языках,

  • Значение перед запятой обозначает количество строк.
  • Значение после запятой обозначает количество столбцов.
  • Если вы хотите выбрать столбец, добавьте : перед указателем столбцов.
  • : Это означает, что вам нужны все строки из выбранного столбца.
print('Second column:', e[:,1])
Second column: [2 5]

Чтобы вернуть первые два значения второй строки, используйте : Выбрать все столбцы до второго индекса включительно.

## Second Row, two values
print(e[1, :2])
[4 5]

Статистические функции в Python

NumPy предоставляет полезный набор статистических функций для нахождения минимума, максимума, процентиля, стандартного отклонения, дисперсии и многого другого в заданном массиве. Наиболее часто используемые из них перечислены ниже.

NumPy поставляется с мощными статистическими вспомогательными средствами, краткое описание которых приведено в таблице.

Функция Numpy
Мин. НП.мин()
Max НП.макс()
среднее np.mean()
медиана np.median()
Стандартное отклонение np.std()

Рассмотрим следующий массив:

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

Выход:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Пример статистических функций NumPy

### Min
print(np.min(normal_array))

### Max
print(np.max(normal_array))

### Mean
print(np.mean(normal_array))

### Median
print(np.median(normal_array))

### Sd
print(np.std(normal_array))

Выход:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Что такое скалярное произведение?

numpy.dot Это мощная функция для матричных вычислений. Например, скалярное произведение можно вычислить с помощью np.dot. numpy.dot возвращает скалярное произведение a и bи обрабатывает как одномерные, так и двумерные массивы. Для двумерных входных данных выполняет умножение матриц.

Синтаксис:

numpy.dot(x, y, out=None)

Параметры

Здесь,

x, y: входные массивы. x и y Оба варианта должны быть одномерными или двумерными. np.dot() работать как скалярное произведение или матричное умножение.

внешний: необязательный выходной аргумент, используемый для сохранения результата. В противном случае возвращается массив ndarray.

Returns

Функция numpy.dot() возвращает скалярное произведение двух массивов. x и yФункция возвращает скалярное значение, если оба элемента одномерны, в противном случае возвращает массив. Если out Если задан определенный массив, он возвращается.

Поднимает

Скалярное произведение в Python поднимает вопрос ValueError если последнее измерение x не соответствует предпоследнему измерению y.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

## Linear algebra
### Dot product: product of two arrays
f = np.array([1,2])
g = np.array([4,5])
### 1*4+2*5
np.dot(f, g)

Выход:

14

Умножение матриц в Python

NumPy matmul() Функция возвращает произведение матриц двух массивов. Вот как это работает.

1) Для двумерных массивов функция возвращает произведение нормальных матриц.

2) Для размерностей больше 2 произведение рассматривается как стопка матриц.

3) Одномерный массив сначала преобразуется в матрицу, затем вычисляется его произведение.

Инфикс @ оператор, доступен с Python 3.5 — это сокращенное обозначение matmul и широко используется в современном коде.

Синтаксис:

numpy.matmul(x, y, out=None)

Здесь,

x, yВходные массивы. Скалярные значения не допускаются.

внешний: необязательный параметр. Обычно выходные данные сохраняются в массиве ndarray.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Аналогичным образом можно вычислить умножение матриц с помощью np.matmul.

### Matmul: matrix product of two arrays
h = [[1,2],[3,4]]
i = [[5,6],[7,8]]
### 1*5+2*7 = 19
np.matmul(h, i)

Выход:

array([[19, 22],
            [43, 50]])

определитель

Если вам нужно вычислить определитель матрицы, используйте np.linalg.det()NumPy позаботится о размерах за вас.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

## Determinant 2*2 matrix
### 5*8-7*6
np.linalg.det(i)

Выход:

-2.000000000000005

Объяснение принципа широковещательной рассылки в NumPy.

Широковещательная рассылка — это правило, позволяющее NumPy выполнять арифметические операции над массивами различной формы без копирования данных. При сложении скаляра с одномерным вектором или одномерного вектора с двумерной матрицей NumPy растягивает меньший операнд вдоль отсутствующих осей, чтобы формы выровнялись. Это позволяет избежать явного копирования. Python Циклы — одна из главных причин, почему код NumPy кажется быстрым и лаконичным.

Две фигуры совместимы для трансляции, если при сравнении справа налево каждая пара измерений либо равна, либо одна из них равна 1. Например, матрица формы (3, 4) трансляции на фоне ряда фигур (4,) или колонна определенной формы (3, 1)Та же логика лежит в основе нормализации в машинном обучении, где вы выполняете подстановку.tracВектор среднего значения для каждой характеристики из пакета выборок в одной строке. Широковещательная рассылка также является концептуальной моделью, используемой библиотеками тензоров, такими как Python.Torch, TensorFlow и JAX, поэтому правила, которые вы здесь изучите, напрямую применимы к коду для графических процессоров.

Как NumPy обеспечивает работу ИИ и машинного обучения

NumPy лежит в основе практически каждого современного языка программирования. Python Стек ИИ. pyTorТензоры ch, тензоры с активным доступом в TensorFlow и массивы JAX предоставляют одинаковые возможности широковещательной передачи, нарезки и изменения формы.ping API, который вы изучили в NumPy ndarrays. Во многих руководствах по-прежнему используются предварительно обработанные массивы NumPy в циклах обучения модели, и фреймворки принимают их без каких-либо преобразований.

Три конкретных примера показывают, как NumPy сегодня используется в работе с ИИ. Во-первых, инженеры данных преобразуют исходные признаки в массивы NumPy, прежде чем передать их конвейерам scikit-learn или наборам данных Hugging Face. Во-вторых, исследователи используют NumPy в качестве базовой платформы для ЦП, а затем заменяют его на CuPy, который предоставляет практически идентичный API, но работает на графических процессорах NVIDIA через CUDA. В-третьих, JAX использует API NumPy для добавления автоматического дифференцирования и компиляции «на лету», поэтому тот же код, который работает на ноутбуке, может работать на TPU в облаке. Главный вывод заключается в том, что навыки работы с массивами, которые вы приобретаете с помощью NumPy, применимы ко всем основным инструментам глубокого обучения, что делает этот учебник полезным шагом на пути к разработке ИИ.

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

NumPy предоставляет быстрые N-мерные массивы, векторизованную математику, линейную алгебру, случайную выборку и преобразования Фурье. Инженеры и специалисты по обработке данных используют его для численных вычислений, обработки изображений и сигналов, статистики, а также в качестве основы для работы с массивами в библиотеках более высокого уровня, таких как pandas, scikit-learn и SciPy.

В массиве NumPy элементы одного фиксированного типа данных хранятся в непрерывном блоке памяти, что делает векторизованные вычисления быстрыми. Python Списки содержат произвольные объекты, поддерживают смешанные типы и полагаются на более медленные циклы для каждого элемента, поэтому они гибкие, но гораздо менее эффективны для больших объемов числовых данных.

NumPy 2.0, выпущенный в июне 2024 года, сохраняет стабильность основного API для работы с массивами, но удаляет давно устаревшие псевдонимы, такие как... np.float и np.intи ужесточает правила повышения типов. Большинству кода, используемого в производственной среде, требуются лишь незначительные изменения. numpy<2 если зависимость еще не обновлена.

PyTorCh и TensorFlow моделируют свои тензорные объекты на основе NumPy ndarrays. Они имеют одинаковую форму, семантику широковещательной рассылки и нарезки, и оба принимают массивы NumPy в качестве входных данных. Навыки, полученные при работе с NumPy, напрямую переносятся на создание нейронных сетей, циклов обучения и конвейеров предварительной обработки тензоров.

Стандартный NumPy работает на ЦП. Для ускорения с помощью графического процессора можно использовать CuPy, который дублирует API NumPy на устройствах NVIDIA CUDA, или JAX, который добавляет автоматическое сравнение и компиляцию «на лету» для графических и TPU. Оба варианта позволяют повторно использовать большую часть существующего кода NumPy с минимальными изменениями для задач искусственного интеллекта.

Anaconda по умолчанию включает NumPy. В противном случае запустите... pip install numpy or conda install -c anaconda numpyДля обновления существующей установки до NumPy 2.x выполните команду: pip install --upgrade numpyПроверьте активную версию с помощью print(np.__version__) внутри Python.

Функция широковещательной рассылки позволяет NumPy работать с массивами различной формы без копирования данных. Меньший массив виртуально растягивается, чтобы соответствовать большему, если размеры совместимы. Это обеспечивает лаконичные выражения для нормализации, масштабирования и проектирования признаков в конвейерах машинного обучения.

Подведем итог этой публикации следующим образом: