Что означает команда import numpy as np
Перейти к содержимому

Что означает команда import numpy as np

  • автор:

NumPy, часть 1: начало работы

Python 3 логотип

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

Установка NumPy

На linux — пакет python3-numpy (или аналогичный для вашей системы), или через pip. Ну или же собирать из исходников https://sourceforge.net/projects/numpy/files/NumPy/.

На Windows на том же сайте есть exe установщики. Или, если возникают проблемы, рекомендую ещё хороший сборник библиотек http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy.

Начинаем работу

Основным объектом NumPy является однородный многомерный массив (в numpy называется numpy.ndarray). Это многомерный массив элементов (обычно чисел), одного типа.

Наиболее важные атрибуты объектов ndarray:

ndarray.ndim — число измерений (чаще их называют «оси») массива.

ndarray.shape — размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim.

ndarray.size — количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape.

ndarray.dtype — объект, описывающий тип элементов массива. Можно определить dtype, используя стандартные типы данных Python. NumPy здесь предоставляет целый букет возможностей, как встроенных, например: bool_, character, int8, int16, int32, int64, float8, float16, float32, float64, complex64, object_, так и возможность определить собственные типы данных, в том числе и составные.

ndarray.itemsize — размер каждого элемента массива в байтах.

ndarray.data — буфер, содержащий фактические элементы массива. Обычно не нужно использовать этот атрибут, так как обращаться к элементам массива проще всего с помощью индексов.

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

В NumPy существует много способов создать массив. Один из наиболее простых — создать массив из обычных списков или кортежей Python, используя функцию numpy.array() (запомните: array — функция, создающая объект типа ndarray):

Функция array() трансформирует вложенные последовательности в многомерные массивы. Тип элементов массива зависит от типа элементов исходной последовательности (но можно и переопределить его в момент создания).

Можно также переопределить тип в момент создания:

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

Функция zeros() создает массив из нулей, а функция ones() — массив из единиц. Обе функции принимают кортеж с размерами, и аргумент dtype:

Функция eye() создаёт единичную матрицу (двумерный массив)

Функция empty() создает массив без его заполнения. Исходное содержимое случайно и зависит от состояния памяти на момент создания массива (то есть от того мусора, что в ней хранится):

Для создания последовательностей чисел, в NumPy имеется функция arange(), аналогичная встроенной в Python range(), только вместо списков она возвращает массивы, и принимает не только целые значения:

Вообще, при использовании arange() с аргументами типа float, сложно быть уверенным в том, сколько элементов будет получено (из-за ограничения точности чисел с плавающей запятой). Поэтому, в таких случаях обычно лучше использовать функцию linspace(), которая вместо шага в качестве одного из аргументов принимает число, равное количеству нужных элементов:

fromfunction(): применяет функцию ко всем комбинациям индексов

Печать массивов

Если массив слишком большой, чтобы его печатать, NumPy автоматически скрывает центральную часть массива и выводит только его уголки.

Если вам действительно нужно увидеть весь массив, используйте функцию numpy.set_printoptions:

И вообще, с помощью этой функции можно настроить печать массивов "под себя". Функция numpy.set_printoptions принимает несколько аргументов:

precision : количество отображаемых цифр после запятой (по умолчанию 8).

threshold : количество элементов в массиве, вызывающее обрезание элементов (по умолчанию 1000).

edgeitems : количество элементов в начале и в конце каждой размерности массива (по умолчанию 3).

linewidth : количество символов в строке, после которых осуществляется перенос (по умолчанию 75).

suppress : если True, не печатает маленькие значения в scientific notation (по умолчанию False).

nanstr : строковое представление NaN (по умолчанию ‘nan’).

infstr : строковое представление inf (по умолчанию ‘inf’).

formatter : позволяет более тонко управлять печатью массивов. Здесь я его рассматривать не буду, можете почитать здесь (на английском).

И вообще, пользуйтесь официальной документацией по numpy, а в этом пособии я постараюсь описать всё необходимое. В следующей части мы рассмотрим базовые операции над массивами.

Подписывайтесь, чтобы не пропустить 🙂

Для вставки кода на Python в комментарий заключайте его в теги

Самый простой способ использовать NumPy: импортировать numpy как np

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

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

import numpy as np 

Часть кода import numpy сообщает Python о необходимости перенести библиотеку NumPy в вашу текущую среду.

Затем as np часть кода сообщает Python, чтобы дать NumPy псевдоним np.Это позволяет вам использовать функции NumPy, просто набрав np.function_name, а не numpy.function_name.

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

Как создать базовый массив NumPy

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

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

import numpy as np #define array x = np.array([1, 12, 14, 9, 5]) #display array print(x) [ 1 12 14 9 5] #display number of elements in array x. size 5 

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

import numpy as np #define arrays x = np.array([1, 12, 14, 9, 5]) y = np.array([2, 3, 3, 4, 2]) #add the two arrays x+y array([ 3, 15, 17, 13, 7]) #subtract the two arrays x-y array([-1, 9, 11, 5, 3]) #multiply the two arrays x\*y array([ 2, 36, 42, 36, 10]) 

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

Возможные ошибки при импорте NumPy

Одна потенциальная ошибка, с которой вы можете столкнуться при импорте NumPy:

NameError : name 'np' is not defined 

Это происходит, когда вы не можете указать псевдоним NumPy при его импорте. Прочитайте это руководство , чтобы узнать, как быстро исправить эту ошибку.

Дополнительные ресурсы

Если вы хотите узнать больше о NumPy, ознакомьтесь со следующими ресурсами:

Установка и первое знакомство

Язык Python стал популярен благодаря своей богатой библиотеке. Я его воспринимаю как некоего начальника, который через свои команды раздает задачи подчиненным. Они выполняются и на выходе получается некий результат работы программы:

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

Вообще, NumPy предназначен для выполнения научных вычислений и активно используется не только в качестве самостоятельной библиотеки учеными и преподавателями по всему миру, но и входит в состав многих других популярных пакетов. С одним из них – Keras, мы с вами недавно познакомились, когда изучали основы работы НС. И вы могли заметить, что вначале программ фигурировала строчка:

import numpy as np

Это, как раз, выполнение импорта того самого пакета NumPy.

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

Установка NumPy

Я думаю, вы прониклись уважением к этому пакету, и пришла пора прикоснуться к «святому граалю». В начале, как всегда, его нужно установить. Сделать это чрезвычайно просто, достаточно выполнить в терминале команду:

pip install numpy

Не удивляйтесь, если этот пакет у вас уже установлен, так как он входит в состав многих других библиотек. Проверить установку можно командой:

import numpy as np

Если такая программа выполняется без ошибок, то этот «святой грааль» уже присутствует на вашем устройстве и готов к истязаниям.

У вас здесь уже может возникнуть вопрос: почему импорт записан в таком виде? А не просто: import numpy? Можно и так, но тогда в программе все время придется использовать префикс numpy. Гораздо удобнее писать две буквы «np». Поэтому общепринятой практикой стало импортирование этого пакета именно в таком виде. Я буду следовать сложившейся традиции и делать также.

Фундаментальный элемент NumPy – массив (array)

Отлично, сложнейший этап установки и импорта пакета позади. Пришло время сделать первые шаги и вначале познакомиться с его фундаментальным элементом – однородным многомерным массивом. В NumPy элементы массива имеют единый тип данных. Их индексы описываются кортежем целых неотрицательных чисел. Размерность кортежа – это ранг массива (то есть, размерность массива), а каждое число в кортеже представляет свою отдельную ось:

Как создать массив в NumPy? Существует много способов, но базовый реализуется через функцию:

Здесь в качестве первого параметра object может выступать список или кортеж, а также функция или объект, возвращающий список или кортеж. Второй параметр dtype – это тип элементов массива. Если указано значение None, то тип будет определяться автоматически на основе переданных данных. Подробнее об этой функции можно, как всегда, почитать на странице официальной документации:

Итак, в самом простом варианте можно создать одномерный массив так:

a = np.array([1, 2, 3, 4])

В результате получим объект типа array с элементами 1, 2, 3, 4:

Какой будет тип у этих элементов? Мы можем его посмотреть с помощью атрибута dtype, выполнив в консоли строчку:

a.dtype

То есть, автоматически был применен целочисленный тип размерностью 32 бит. Ну, хорошо, а что если попробовать создать массив с разными типами его элементов, например, так:

a = np.array([1, 2, "3", True])

В результате увидим, следующее содержимое:

Все элементы стали строкового типа. Этот пример показывает, что в массивах NumPy используется единый тип данных его элементов: или все целочисленные, или строковые, или вещественные и так далее. Смешение типов в рамках одного массива не допускается.

Отлично, это мы сделали. Как теперь можно обращаться к отдельным элементам массива? Для этого используется общий синтаксис:

Например, для нашего одномерного случая, мы можем взять первый элемент из массива a, следующим образом:

Увидим значение ‘1’. Обратите внимание, первый элемент имеет индекс 0, а не 1. Единица – это уже второй элемент:

a[1] # возвращает 2-й элемент со значением ‘2’

Для изменения значения элемента, достаточно присвоить ему новое значение, например:

a[1] = '123'

в результате получим массив:

А что будет, если мы попробуем присвоить значение другого типа данных, например, число:

a[1] = 234

Ошибки не будет, а значение автоматически будет преобразовано в строку:

Разработчики пакета NumPy постарались сделать его максимально дружественным, чтобы инженер сосредотачивался именно на решении задачи, а не на нюансах программирования. Поэтому везде, там где это допустимо, пакет NumPy берет на себя разрешение подобных нюансов. И, как показала практика, это очень удобно и заметно облегчает жизнь нам, простым смертным.

Минутка восхищения или что такого в массивах NumPy

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

Предположим, мы определили одномерный массив с числами от 1 до 9:

a = np.array([1,2,3,4,5,6,7,8,9])

Мы уже знаем как взять один отдельный элемент, но что будет, если прописать индексы для всех 9 элементов:

a[ [1,1,1,1,1,1,1,1,1] ]

На выходе увидим одномерный массив из двоек:

array([2, 2, 2, 2, 2, 2, 2, 2, 2])

a[ [1,1,1,1,1] ]

тогда получим аналогичный массив, но размерностью 5 элементов:

Как видите, индексирование здесь более гибкое, чем у обычных списков Python. Или, вот еще один характерный пример:

a[ [True, True, False, False, False, False, True, True, True] ]

Результат будет следующим:

То есть, остаются элементы со значениями True и отбрасываются со значениями False. Обо всем этом мы еще будем подробно говорить.

Еще один пример. Предположим, нам понадобилось представить одномерный массив a в виде матрицы 3х3. Нет ничего проще, меняем его размерность:

b = a.reshape(3, 3)

и получаем заветный результат:

Далее, можем обращаться к элементам матрицы b так:

b[1, 2]

В обоих случаях будет взят один и тот же элемент со значением 6.

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

Видео по теме

#1. Пакет numpy - установка и первое знакомство | NumPy уроки

#2. Основные типы данных. Создание массивов функцией array() | NumPy уроки

#3. Функции автозаполнения, создания матриц и числовых диапазонов | NumPy уроки

#4. Свойства и представления массивов, создание их копий | NumPy уроки

#5. Изменение формы массивов, добавление и удаление осей | NumPy уроки

#6. Объединение и разделение массивов | NumPy уроки

#7. Индексация, срезы, итерирование массивов | NumPy уроки

#8. Базовые математические операции над массивами | NumPy уроки

#9. Булевы операции и функции, значения inf и nan | NumPy уроки

#10. Базовые математические функции | NumPy уроки

#11. Произведение матриц и векторов, элементы линейной алгебры | NumPy уроки

#12. Множества (unique) и операции над ними | NumPy уроки

#13. Транслирование массивов | NumPy уроки

© 2024 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта

NumPy

NumPy — это библиотека Python, которую применяют для математических вычислений: начиная с базовых функций и заканчивая линейной алгеброй. Полное название библиотеки — Numerical Python extensions, или «Числовые расширения Python».

Освойте профессию
«Python-разработчик»

У этой библиотеки есть несколько важных особенностей, которые сделали ее популярным инструментом. Во-первых, исходный ее код в свободном доступе хранится на GitHub, поэтому NumPy называют open-source модулем для Python.

Во-вторых, библиотека написана на языках C и Fortran. Это компилируемые языки (языки программирования, текст которых преобразуется в машинный код — набор инструкций для конкретного типа процессора. Преобразование происходит с помощью специальной программы-компилятора, благодаря нему вычисления на компилируемых языках происходят быстрее), на которых вычисления производятся гораздо быстрее и эффективнее, чем на интерпретируемых языках (языки программирования, которые не заточены под конкретный тип процессора и могут быть запущены на разных типах устройств). К этим языкам относится и сам Python.

Python-разработчик

Освойте Python, самый популярный язык программирования

dffsdd (3)

Где используется NumPy

  • Научные вычисления. NumPy пользуются ученые для решения многомерных задач в математике и физике, биоинформатике, вычислительной химии и даже когнитивной психологии.
  • Создание новых массивных библиотек. На основе NumPy появляются новые типы массивов, возможности которых выходят за рамки того, что предлагает библиотека. Например, библиотеки Dask, CuPy или XND.
  • Data Science. В основе экосистемы для анализа данных лежит NumPy. Библиотека используется на всех этапах работы с данными: извлечение и преобразование, анализ, моделирование и оценка, репрезентация.
  • Machine Learning. Библиотеки для машинного обучения scikit-learn и SciPy тоже работают благодаря вычислительным мощностям NumPy.
  • Визуализация данных. По сравнению непосредственно с Python возможности NumPy позволяют исследователям визуализировать наборы данных, которые гораздо больше по размеру. Например, библиотека лежит в основе системы PyViz, которая включает в себя десятки программ для визуализации.

Как работает NumPy

Для начала разберемся в устройстве массивов, которые обрабатывает NumPy. Рассмотрим однородный двумерный массив. Он выглядит как простая таблица — две оси значений и ячейки внутри (элементы массива). Если появится третья ось, то массив станет трехмерным. Важное условие — все элементы должны иметь единый тип данных, например только целые числа.

Конечно, кроме двумерных массивов, библиотека NumPy обрабатывает и другие, с различным количеством осей. Эту вариативность обозначают числом N, как любую переменную в математической задаче. Поэтому обычно говорят, что NumPy работает с N-мерными массивами данных.

Читайте также Кому и для чего нужен Python?

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

import numpy as np
left = np.array( [ [1, 3], [2, -4] ] )
right = np.array( [9, 8] )
np.linalg.solve(left, right)
Ответ: array([6., 1.])

Как и сам Python, библиотека NumPy отличается простотой в изучении и использовании. Для начала работы достаточно освоить концепцию массивов. Например, в базовых арифметических вычислениях есть способ обработки массивов, который называют ‎трансляцией‎ или broadcasting.

Если в массиве величины указаны в милях, а результат нужно получить в километрах, можно умножить его на простое число 1,6 (скалярную величину). NumPy принимает самостоятельное решение умножить на заданное число каждый элемент в массиве, и пользователю не приходится прописывать для этого отдельную команду.

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

Станьте разработчиком на Python и решайте самые разные задачи: от написания кода до автоматизации процессов

Как загрузить библиотеку?

Для загрузки NumPy просто введите в командной строке: import numpy as np. Не удивляйтесь, если библиотека окажется установленной, ведь модуль NumPy входит в состав множества пакетов и других библиотек.

Конечно, можно написать просто import numpy, ошибки в этом не будет. Но np — это общепринятое название, которое стало правилом и упростило процесс написания кода, поэтому, один раз прописав import numpy as np, в последующих строках можно использовать np вместо numpy.

Python-разработчик

Освойте Python с нуля. Подготовим к трудоустройству: дадим много практики, реальные проекты для портфолио, поможем с резюме. Лучшие студенты пройдут стажировки в проектах компаний-партнеров.

картинка - 2023-03-14T190323.524

Статьи по теме:

Специалист по компьютерному зрению рассказывает, как увлечение рептилиями помогло перейти из юриспруденции в Data Science.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *