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

Что такое 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]
При построении графика распределение будет выглядеть примерно так, как показано ниже.

Обратите внимание, что в более новых версиях кода все чаще используется современный 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.arangein 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, применимы ко всем основным инструментам глубокого обучения, что делает этот учебник полезным шагом на пути к разработке ИИ.
