Освоение NumPy: способы инициализации, операции и функции Ndarray

Опубликовано: 2021-01-05

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

Оглавление

Почему NumPy?

Другие библиотеки Data Science, такие как Pandas, Matplotlib и Scikit-learn, построены на основе Numpy из-за его высокой производительности. Эта библиотека предлагает ndarray, который используется вместо встроенных списков Python. Список Python отлично подходит для хранения значений, но это достигается за счет увеличения времени выполнения, поскольку в нем хранятся указатели на ячейки памяти, что увеличивает накладные расходы с точки зрения памяти и выполнения.

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

Давайте рассмотрим некоторые важные функции Numpy, которые должен знать каждый претендент на науку о данных, но до этого:

  1. Код всех функций ниже предполагает, что библиотека была импортирована с псевдонимом np, т. е. импортировать numpy как np.
  2. После этого термин «массив» будет использоваться для определения ndarray.

Различные способы инициализации

1. Линейно расположенные

Эта функция предназначена для предоставления линейного разнесенного массива в диапазоне значений. Функция np.linspace(start, stop, num), где start и stop определяют диапазон значений, а num определяет количество выборок, возвращает равномерно распределенные значения, тогда как np.arange(start, stop, step) возвращает значения, отличающиеся на значения шагов.

2. Особые ценности

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

    • np.zeros(size): элементы равны нулю
    • np.ones(size): элементы равны единицам
    • np.full (размер, постоянное значение): элементы передаются с постоянным значением.
    • np.eye(size): диагональные элементы равны единицам, а остальные равны нулю. Это тождественная матрица.
    • np.empty(size): пустая матрица
    • np.random.random(size): матрица случайных значений инициализируется заданным размером.

Читайте: вопросы интервью Numpy

Ндаррай Операции

Основная цель этой библиотеки - эффективные вычисления между различными массивами. Numpy поддерживает практически все типы математических операций и манипуляций, применяемых поэлементно. Некоторые из них перечислены ниже (предположим, что два массива A и B одинакового размера инициализированы случайными значениями):

1. Математическая

  • np.add(A, B): добавление
  • np.subtract(A, B): вычитание
  • np.divide(A, B): деление
  • np.multiply(A, B): умножение
  • np.exp(A): экспоненциальные значения
  • np.sqrt(A): значения квадратного корня
  • np.sin(A), cos(A), tan(A): тригонометрические значения
  • np.log(A): логарифмические значения
  • np.percentile (A, необходимый процентиль, ось): при передаче значения процентиля, например, 50, функция вернет 50-й процентиль массива.
  • A.dot(B): возвращает скалярное произведение массивов.
  • A == B: поэлементное сравнение
  • np.array_equal(A, B): сравнение массивов
  • A.sum(): сумма всех элементов
  • A.min(), max(): минимальное и максимальное значения
  • A.cumsum(): совокупная сумма элементов массива
  • A.corrcoef(): коэффициент корреляции

2. Манипуляции

  • np.transpose(A) или AT: транспонировать матрицу
  • A.ravel(): сглаживает массив
  • A.reshape(new_shape): изменяет форму массива (здесь размер передается напрямую, не помещая его в кортеж). Новый размер должен быть таким же, как
  • A.resize(size): изменяет форму массива на любую форму и отбрасывает другие элементы, которые не являются частью этой новой формы.
  • np.concatenate((A,B), ось=1 или 0)
  • np.vstack((A,B)): сложить массивы вертикально (построчно)
  • np.hstack((A,B)): горизонтальный стек

Отъезд: Numpy против Panda: разница между

Прочие функции

  • np.where(): это важная функция, которая устраняет необходимость в операторах if-else. Он принимает 3 важных аргумента: условие, значение, если условие выполняется, и значение, если нет. Простым примером этого может быть ситуация, когда вам нужно выполнить бинарную обработку столбца на основе заданного порога.
  • np.intersect1d(): эта функция возвращает пересечение двух одномерных массивов. Это означает, что эта функция возвращает общие значения этих массивов. Если переданные массивы не являются одномерными, то они сглаживаются.
  • np.allclose(): это интересная функция. Бывают ситуации, когда вы можете позволить себе некоторый уровень терпимости при сравнении массивов или хотите найти похожие массивы. Эта функция принимает массивы и требуемое значение допуска. Например:
    • arr1 = np.массив ([1,2,3,4])
    • массив2 = np.массив ([2,3,4,5])
    • np.allclose(arr1, arr2, 0.5): вернет False
    • np.allclose(arr1, arr2, 1): вернет True
  • argmin(), argmax() и argsort(): как следует из названия, эти функции возвращают индексы соответствующих имен. A.argmin() возвращает минимальный индекс элемента, A.argmax() наоборот, а A.argsort() возвращает индексы отсортированного массива. Эти функции могут пригодиться, когда результат зависит от индекса.
  • np.clip(): используется для преобразования значений в пределах определенного диапазона. Например, если массив имеет значения от 1 до 30, а вам нужны значения от 14 до 27 без потери других значений, эта функция будет увеличивать значения меньше 19 до 19 и уменьшать значения больше 27 до 27.

Заключение

Есть много других функций при работе с массивами numpy, но это наиболее часто используемые функции. Операции, применяемые к столбцам или рядам Pandas, фактически относятся к ndarray, поскольку ряд является одномерным ndarray.

Numpy — отличный инструмент для создания поддельных данных для тестирования определенных алгоритмов или моделирования сценария. Он широко используется в приложениях компьютерного зрения, где изображение преобразуется в многомерные матрицы для выполнения необходимых операций, или в глубоком обучении, где веса нейронной сети удерживаются этими ndarrays.

Если вам интересно узнать о науке о данных, ознакомьтесь с дипломом IIIT-B & upGrad PG в области науки о данных, который создан для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевыми экспертами, 1- on-1 с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Подготовьтесь к карьере будущего

ДИПЛОМ PG ОТ IIIT-B, 100+ ЧАСОВ ОБУЧЕНИЯ В КЛАССЕ, 400+ ЧАСОВ ОНЛАЙН-ОБУЧЕНИЯ И 360 ГРАДУСОВ КАРЬЕРНОЙ ПОДДЕРЖКИ
Узнать больше