Numpy


Начало работы

Введение

Для начала работы вам также потребуется импортировать numpy:

``python 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-файл |


### Создание массивов {.row-span-2}


| - | - |
|-------------------------------|-----------------------------------|
| `np.array([1,2,3])` | Одномерный массив |
| `np.array([(1,2,3),(4,5,6)])` | Двумерный массив |
| | `np.zeros(3)` | Одномерный массив длины 3 со всеми значениями 0 |
| `np.ones((3,4))` | Массив 3x4 со всеми значениями 1 |
| `np.eye(5)` | 5x5 массив из 0 с 1 на диагонали (матрица тождества)
| `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 со всеми значениями 8 |
| `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 (строки, столбцы)
| | `arr.dtype` | Возвращает тип элементов в arr |
| | `arr.astype(dtype)` | Преобразование элементов arr к типу dtype |
| | `arr.tolist()` | Преобразование arr в список Python |
| `np.info(np.eye)` | Просмотр документации по np.eye |


### Копирование/сортировка/обновление


| - | - |
|-----------------------|----------------------------------------------|
| `np.copy(arr)` | Копирует arr в новую память |
| | `arr.view(dtype)` | Создает представление элементов arr с типом dtype |
| `arr.sort()` | Сортировка arr |
| | `arr.sort(axis=0)` | Сортирует определенную ось arr |
| `two_d_arr.flatten()` | Сплющивает двумерный массив two_d_arr в одномерный |
| `arr.T` | Транспонирует массив (строки становятся столбцами и наоборот)
| | `arr.reshape(3,4)` | Изменение формы массива на 3 строки, 4 столбца без изменения данных |
| `arr.resize((5,6))` | Изменяет форму arr на 5x6 и заполняет новые значения значением 0 |


### Добавление/удаление элементов


| - | - |
|---------------------------|----------------------------------------|
| `np.append(arr,values)` | Добавляет значения в конец arr |
| `np.insert(arr,2,values)` | Вставляет значения в arr до индекса 2 |
| | `np.delete(arr,3,axis=0)` | Удаляет строку с индексом 3 из arr |
| `np.delete(arr,4,axis=1)` | Удаляет столбец с индексом 4 из arr |


### Объединение/разбиение


| - | - |
|--------------------------------------|------------------------------------------|
| `np.concatenate((arr1,arr2),axis=0)` | Добавляет arr2 в качестве строки в конец arr1 |
| `np.concatenate((arr1,arr2),axis=1)` | Добавляет arr2 в качестве столбцов в конец arr1 |
| `np.split(arr,3)` | Разбивает arr на 3 подмассива |
| `np.hsplit(arr,5)` | Делит arr по горизонтали по 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 (для двумерного массива: возвращает строки 0,1,2)
| | `arr[0:3,4]` | Возвращает элементы в строках 0,1,2 в столбце 4 |
| `arr[:2]` | Возвращает элементы по индексам 0,1 (В двумерном массиве: возвращает строки 0,1)
| | `arr[:,1]` | Возвращает элементы с индексом 1 во всех строках |
| `arr<5` | Возвращает массив с булевыми значениями |
| `(arr1<3) & (arr2>5)` | Возвращает массив с булевыми значениями |
| `~arr` | Инвертирует массив с булевыми значениями |
| `arr[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)` | Округление до ближайшего значения int |
| | `np.floor(arr)` | Округление вниз до ближайшего значения int |
| | `np.round(arr)` | Округление до ближайшего значения int |


### Скалярная математика


| - | - |
|----------------------|------------------------------------|
| `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.mean(arr,axis=0)` | Возвращает среднее значение по определенной оси |
| `arr.sum()` | Возвращает сумму arr |
| `arr.min()` | Возвращает минимальное значение arr |
| | `arr.max(axis=0)` | Возвращает максимальное значение по конкретной оси |
| `np.var(arr)` | Возвращает дисперсию массива |
| `np.std(arr,axis=1)` | Возвращает стандартное отклонение конкретной оси |
| `arr.corrcoef()` | Возвращает коэффициент корреляции массива |