Примечания к исследованию основы анализа данных NumPy

искусственный интеллект анализ данных
Примечания к исследованию основы анализа данных NumPy

«Это 18-й день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г.".

1.ndarray: объект многомерного массива

Атрибуты, которые есть у каждого массива:

  • форма: номер каждого измерения массива;
  • dtype: тип данных массива;
  • ndim: измерение.

1.1 Создание ndarray

функция генерации массива

Имя функции описывать
array Преобразование входных данных (которые могут быть списками, кортежами, массивами и другими последовательностями) в ndarray.Если тип данных явно не указан, он будет выведен автоматически; копирование всех входных данных по умолчанию
asarray Преобразуйте ввод в ndarray, но больше не копируйте, если ввод уже является ndarray
arrange Массивная версия встроенного диапазона функций Python, которая возвращает массив
ones Создает массив всех 1 из заданной формы и типа данных
ones_like Генерирует массив всех единиц одинаковой формы из заданного массива.
zeros Создает массив всех 0 с заданной формой и типом данных
zeros_like Генерирует массив всех нулей одинаковой формы из заданного массива
empty Генерирует пустой массив без инициализированных значений в соответствии с заданной формой
empty_like Генерирует пустой массив той же формы, но без инициализированных значений из заданного массива
full Генерирует массив указанных значений с заданной формой и типом данных
full_like Генерирует массив той же формы, но с указанным значением из заданного массива
eye,identity Создайте матрицу признаков NXN (все позиции по диагонали равны 1, а остальные — 0)

1.2 Типы данных ndarray

Пустые типы данных

тип введите код описывать
int8, uint8 i1, u1 8-битные целые числа со знаком и без знака
int16, uint16 i2, u2 Знаковые и беззнаковые 16-битные целые числа
int32, uint32 i4, u4 Знаковые и беззнаковые 32-битные целые числа
int64, uint64 i8, u8 Знаковые и беззнаковые 64-битные целые числа
float16 f2 с плавающей запятой половинной точности
float32 f4 или ф Стандартное число одинарной точности с плавающей запятой, совместимое с числом с плавающей запятой языка C
float64 f8 или д Стандартное число двойной точности с плавающей запятой, совместимое с языком C double и Python float
float28 f16 или г Числа с плавающей запятой повышенной точности
complex64, complex128, complex256 c8, c16, c32 Комплексные числа на основе 32-битных, 64-битных и 128-битных чисел с плавающей запятой соответственно.
bool ? логическое значение, хранящее True или False
object O Тип объекта Python
String_ S Исправлен тип строки ASCII; например, чтобы сгенерировать тип строки длиной 10, используйте 'S10'
unicode_ U Фиксированный тип Unicode, создайте тип Unicode длиной 10, используйте «U10»
  • Тип данных массива может быть явно преобразован с помощью astype;
  • Использование astype всегда создает новый массив, даже если вы передаете тот же dtype, что и раньше.

1.3 Базовая индексация и нарезка

  • В отличие от встроенных списков Python, срез массива представляет собой представление исходного массива. Это означает, что данные не копируются, любые изменения в представлении будут отражены в исходном массиве;
  • [ : ] без значения среза будет ссылаться на все значения массива;
  • Если вам нужна копия массива вместо представления, вам нужно явно скопировать массив, например, arr[5:8].copy();
  • При разрезании одно двоеточие указывает, что выбран массив на всей оси.Например, для двумерного массива arr arr[:, :1] представляет первый столбец всех строк.

1.4 Логическое индексирование

  • Длина логического массива должна быть такой же, как длина индекса оси массива;
  • Если длина массива логических значений неверна, метод данных выбора логических значений не сообщит об ошибке;
  • При выборе данных с помощью логического индекса всегда создается копия данных, а массив, возвращаемый во времени, не изменяется.

1.5 Транспонирование массива и смена оси

Транспонирование — это особая форма реорганизации данных, которая возвращает представление базовых данных без копирования чего-либо.

  • транспонирование матрицы: T;
  • Внутренний продукт матрицы: np.dot;
  • Для многомерных массивов метод транспонирования может получить кортеж, содержащий номер оси, который используется для транспонирования оси;
  • Транспонирование с помощью .T является частным случаем замены осей. ndarray имеетswapaxesметод, который принимает пару номеров осей в качестве аргументов и настраивает оси для реорганизации данных.

2. Общие функции: быстрые поэлементные функции массива

Универсальная функция, также известная как ufunc, — это функция, которая выполняет поэлементные операции с данными ndarray.

2.1 Унарные универсальные функции

Имя функции описывать
пресс, потрясающие Вычислить абсолютное значение целого числа, числа с плавающей запятой или комплексного числа поэлементно
sqrt Вычислить квадратный корень каждого элемента (эквивалентно обр ** 0,5)
square Вычислить квадрат каждого элемента (эквивалентно обр ** 2)
exp Вычислить значение натурального показателя степени для каждого элементаexe^x
лог, лог10, лог2, лог1п Соответствует: натуральный логарифм (основание e), логарифм по основанию 10, логарифм по основанию 2, log(1+x)
sign Вычислить значение знака каждого элемента: 1 (целое число), 0 (0), -1 (отрицательное число)
ceil Вычисляет наибольшее целочисленное значение для каждого элемента (т. е. наименьшее целое число, большее или равное заданному значению)
floor Вычисляет наименьшее целочисленное значение для каждого элемента (то есть наибольшее целое число, меньшее или равное заданному значению)
rint Сохраняйте элементы целыми битами, сохраняя dtype
modf Возвращает дробную часть и целую часть массива в виде массива соответственно
isnan Возвращает, является ли элемент в массиве NaN (не числом), как массив логических значений
конечен, инф Возвращает, являются ли элементы в массиве конечными (не inf, не NaN) или нет, соответственно, в виде массива логических значений
потому что, кош, грех, грех, загар, загар Регулярные гиперболические тригонометрические функции
arccos, arccosh, arcsin, arcsinh, arctan, arctanh Обратные тригонометрические функции
logical_not Инвертировать элементы данных побитно (тот же эффект, что и ~arr )

2.2 Бинарные универсальные функции

Имя функции описывать
add Добавьте соответствующие элементы массива
subtract Во втором массиве удалите элементы, содержащиеся в первом массиве
multiply Умножить соответствующие элементы массива
разделить, floor_divide Разделить или разделить
power Возьмите элемент второго массива как мощность соответствующего элемента первого массива
максимум, фмакс Вычислить максимальный элемент за элементом, fmax игнорирует NaN
минимум, фмин Вычислить минимум поэлементно, fmin игнорирует NaN
mod Поэлементное вычисление по модулю (т.е. нахождение остатка от деления)
copysign Измените символьное значение первого массива на символьное значение второго массива.
больше, больше_равно, меньше, меньше_равно, равно, не равно Выполнить поэлементное сравнение, возвращая массив логических значений
логическое_и, логическое_или, логическое_исключающее Выполнять поэлементные логические операции (И или НЕ)

3. Массивно-ориентированное программирование с использованием массивов

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

  • Функция np.meshgrid принимает два одномерных массива и генерирует двумерную матрицу из всех пар (x, y) двух массивов.

3.1 Работа с условной логикой как с массивом

Функция numpy.where представляет собой векторизованную версию троичного выражения x if condition else y.

  • Второй и третий параметры np.where не обязательно должны быть массивами (массивами одинакового размера), они могут быть скалярами;
  • Типичное использование where в анализе данных — создание нового массива из массива.

3.2 Математические и статистические методы

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

Основные методы статистики массивов

метод описывать
sum Вычислить совокупную сумму всех элементов по оси, массив нулевой длины, совокупная сумма равна 0
mean Среднее математическое, среднее значение массива нулевой длины NaN
стандарт, вар Стандартное отклонение и дисперсия, дополнительно скорректированные по степеням свободы (знаменатель по умолчанию равен n)
мин Макс Мин и Макс
аргмин, аргмакс положение мин и макс
cumsum Поэлементная кумулятивная сумма от 0
cumprod Поэлементная кумулятивная сумма от 1

3.3 Методы логических массивов

  • сумма: вычислить количество True в логическом массиве;
  • все: проверьте, истинно ли каждое значение;
  • any: проверьте, истинно ли хотя бы одно из них.

3.4 Уникальные значения и другая логика набора

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

Операции сбора над массивами

метод описывать
unique(x) Подсчитайте уникальные значения x и отсортируйте
intersect1d(x, y) Вычислите пересечение x и y и отсортируйте
union1d(x, y) Вычислить объединение x и y и отсортировать
in1d(x, y) Вычисляет, содержится ли элемент в x в y, возвращая массив логических значений
setdiff1d(x, y) Набор разностей, элементы x в x, но больше не в y
setxor1d(x, y) Набор XOR, элементы в x или y, но не в пересечении x и y

4. Использование массивов для файлового ввода и вывода

Numpy может хранить данные на жестком диске в виде текстовых или двоичных файлов или загружать их с жесткого диска.

  • np.save и np.load — две инструментальные функции для чтения данных с жесткого диска. По умолчанию массивы хранятся в несжатом формате с суффиксом .npy;
  • Вы можете использовать np.savez и передать массив в качестве параметра функции, чтобы сохранить несколько массивов в несжатом файле;
  • Если данные уже сжаты, вам нужно использовать: numpy.savez_compressed для сохранения данных в сжатый файл.

5. Линейная алгебра

  • np.dot: произведение матриц, x.dot(y) эквивалентно np.dot(x, y);
  • Специальный символ @ также используется как инфиксный оператор для операций с точечной матрицей: x @ np.ones(3);
  • numpy.linalgИмеет стандартный набор функций для матричной факторизации, а также другие часто используемые функции, такие как инверсия и решение определителя.

Общие функции numpy.linalg

функция описывать
diag Возвращает диагональные (или недиагональные) элементы квадратной матрицы в виде одномерного массива или преобразует одномерный массив в квадратную матрицу с нулями вне диагонали.
dot матричное скалярное произведение
trace Вычислите диагональные элементы и
det Вычислить определитель матрицы
eig Вычислить собственные значения и собственные векторы квадратной матрицы
inv Вычислить обратную квадратную матрицу
pinv Вычислите псевдообратную Мура-Пенроуза матрицы
qr Рассчитать QR-разложение
svd Вычислить разложение по сингулярным числам (SVD)
solve Решите линейную систему x Ax = b. где A - квадратная матрица
lstsq Вычислите решение методом наименьших квадратов для Ax = b

6. Генерация псевдослучайных чисел

Список частичных функций в numpy.random

функция описывать
seed Передать случайное начальное состояние генератору случайных чисел
permutation Возвращает случайную перестановку последовательности или неупорядоченную последовательность целочисленных диапазонов.
shuffle рандомизировать последовательность
rand брать образцы из равномерного распределения
randint Нарисуйте случайные целые числа из заданного диапазона от низкого до высокого
randn Нарисуйте образцы из нормального распределения со средним значением 0, дисперсией 1 (интерфейс в стиле MATLAB)
binomial Нарисуйте образцы из биномиального распределения
normal Нарисуйте образцы из нормального (гауссовского) распределения
beta Возьмите образцы из бета-распределения
chisquare Нарисуйте образцы из распределения хи-квадрат
gamma Нарисуйте образцы из гамма-распределения
uniform Нарисуйте образцы из равномерного [0, 1) распределения