«Это 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 | Вычислить значение натурального показателя степени для каждого элемента |
лог, лог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) распределения |