Шпаргалка по NumPy
Система NumPy — это расширение языка Python с открытым исходным кодом для численных вычислений. Этот инструмент можно использовать для хранения и обработки больших матриц, что гораздо эффективнее, чем собственные вложенные списки Python (которые также могут использоваться для представления матриц).
Пояснение
Используйте arr для представления объекта массива numpy.
Импорт модуля
import numpy as npИмпорт/Экспорт
| np.loadtxt(‘file.txt’) | Чтение из текстового файла |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | Чтение из CSV-файла |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | Запись в текстовый файл |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | Запись в CSV-файл |
Создание массива
| np.array([1,2,3]) | Одномерный массив |
| np.array([(1,2,3),(4,5,6)]) | Двумерный массив |
| np.zeros(3) | Одномерный массив длины 3, заполненный нулями |
| np.ones((3,4)) | Массив 3x4, заполненный единицами |
| np.eye(5) | Массив 5x5 с единицами на диагонали и нулями в остальных местах (единичная матрица) |
| np.linspace(0,100,6) | Массив из 6 значений, равномерно распределенных от 0 до 100 |
| np.arange(0,10,3) | Массив значений от 0 до меньше чем 10 с шагом 3 (например, [0,3,6,9]) |
| np.full((2,3),8) | Массив 2x3, заполненный восьмерками |
| np.random.rand(4,5) | Массив 4x5 случайных чисел с плавающей запятой от 0 до 1 |
| np.random.rand(6,7)*100 | Массив 6x7 случайных чисел с плавающей запятой от 0 до 100 |
| np.random.randint(5,size=(2,3)) | Массив 2x3 со случайными целыми числами от 0 до 4 |
Проверка свойств
| arr.size | Возвращает общее количество элементов массива |
| arr.shape | Возвращает размерность массива |
| arr.dtype | Возвращает тип элементов в массиве |
| arr.astype(dtype) | Преобразует тип элементов массива в dtype |
| arr.tolist() | Преобразует массив в список |
| np.info(np.eye) | Посмотреть документацию для np.eye |
Копирование/Сортировка/Изменение формы
| np.copy(arr) | Копирует массив в новую область памяти |
| arr.view(dtype) | Создает представление массива с типом dtype |
| arr.sort() | Сортирует массив |
| arr.sort(axis=0) | Сортирует массив по определенной оси |
| two_d_arr.flatten() | Преобразует двумерный массив в одномерный |
| arr.T | Транспонирует массив (строки становятся столбцами и наоборот) |
| arr.reshape(3,4) | Изменяет форму массива на 3 строки и 4 столбца без изменения данных |
| arr.resize((5,6)) | Изменяет форму массива на 5x6 и заполняет новые значения нулями |
Добавление/Удаление элементов
| np.append(arr,values) | Добавляет значения в конец массива |
| np.insert(arr,2,values) | Вставляет значения в массив перед индексом 2 |
| np.delete(arr,3,axis=0) | Удаляет строку с индексом 3 из массива |
| np.delete(arr,4,axis=1) | Удаляет столбец с индексом 4 из массива |
Объединение/Разделение
| np.concatenate((arr1,arr2),axis=0) | Добавляет arr2 как строки в конец arr1 |
| np.concatenate((arr1,arr2),axis=1) | Добавляет arr2 как столбцы в конец arr1 |
| np.split(arr,3) | Разделяет массив на 3 подмассива |
| np.hsplit(arr,5) | Разделяет массив горизонтально по 5-му индексу |
Индексация/Срезы/Подмножества
| arr[5] | Возвращает элемент по индексу 5 |
| arr[2,5] | Возвращает элемент двумерного массива по индексу [2][5] |
| arr[1]=4 | Присваивает элементу массива по индексу 1 значение 4 |
| arr[1,3]=10 | Присваивает элементу массива по индексу [1][3] значение 10 |
| arr[0:3] | Возвращает элементы с индексами 0,1,2 (В 2D массиве: строки 0,1,2) |
| arr[0:3,4] | Возвращает элементы в строках 0,1,2 в столбце 4 |
| arr[:2] | Возвращает элементы с индексами 0,1 (В 2D массиве: строки 0,1) |
| arr[:,1] | Возвращает элементы по индексу 1 во всех строках |
| arr<5 | Возвращает массив с логическими значениями |
| (arr1<3) & (arr2>5) | Возвращает массив с логическими значениями |
| ~arr | Инвертирует логический массив |
| arr[arr<5] | Возвращает элементы массива меньше 5 |
Скалярная математика
| np.add(arr,1) | Прибавить 1 к каждому элементу массива |
| np.subtract(arr,2) | Вычесть 2 из каждого элемента массива |
| np.multiply(arr,3) | Умножить каждый элемент массива на 3 |
| np.divide(arr,4) | Разделить каждый элемент массива на 4 (возвращает np.nan при делении на ноль) |
| np.power(arr,5) | Возвести каждый элемент массива в 5-ю степень |
Векторная математика
| np.add(arr1,arr2) | Поэлементное сложение arr2 и arr1 |
| np.subtract(arr1,arr2) | Поэлементное вычитание arr2 из arr1 |
| np.multiply(arr1,arr2) | Поэлементное умножение arr1 на arr2 |
| np.divide(arr1,arr2) | Поэлементное деление arr1 на arr2 |
| np.power(arr1,arr2) | Поэлементное возведение элементов arr1 в степень соответствующих элементов arr2 |
| np.array_equal(arr1,arr2) | Возвращает True, если массивы имеют одинаковые элементы и форму |
| np.sqrt(arr) | Квадратный корень из каждого элемента в массиве |
| np.sin(arr) | Синус каждого элемента в массиве |
| np.log(arr) | Натуральный логарифм каждого элемента в массиве |
| np.abs(arr) | Абсолютное значение каждого элемента в массиве |
| np.ceil(arr) | Округляет до ближайшего целого числа в большую сторону |
| np.floor(arr) | Округляет до ближайшего целого числа в меньшую сторону |
| np.round(arr) | Округляет до ближайшего целого числа |
Статистика
| np.mean(arr,axis=0) | Возвращает среднее значение вдоль определенной оси |
| arr.sum() | Возвращает сумму элементов массива |
| arr.min() | Возвращает минимальное значение массива |
| arr.max(axis=0) | Возвращает максимальное значение по определенной оси |
| np.var(arr) | Возвращает дисперсию массива |
| np.std(arr,axis=1) | Возвращает стандартное отклонение по определенной оси |
| arr.corrcoef() | Возвращает коэффициент корреляции массива |