Что такое массив NumPy?
Массив NumPy — это многомерный массив, который поддерживает векторизованные операции и хранит данные одного типа, именуется он как ndarray. Он создается с использованием np.array().
Как создать одномерный массив в NumPy?
Одномерный массив создается с использованием функции np.array([1, 2, 3]).
Как указать тип переменных в массиве NumPy
Если вы хотите указать конкретный тип, то это можно сделать с помощью дополнительного параметра dtype
c = np.array([1, 2, 3], dtype='float32')
Как узнать сколько измерений у массива?
Чтобы узнать, сколько у массива измерений, используется функция ndim:
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b.ndim)
#2
Как посчитать количество строк и столбцов в NumPy?
Фукнция shape.
a = np.array([1,2,3]
print(a.shape)
# (3,)
Для трёхмерных и n-мерных массивов функция shape будет добавлять дополнительные числа в кортеже через запятую:
с = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(с.shape)
# (2, 2, 3)
Читается это так: в объекте c два трёхмерных массива с двумя строками и тремя столбцами.
Как узнать количество элементов в NumPy?
С помощью функции size
size
Как узнать используемое количество байт массивом?
Через функции itemsize и nbytes можно узнать, какое количество байт в памяти занимает один элемент и какое количество байт занимает весь массив:
itemsize
nbytes
Как обратиться к целой строке или столбцу в NumPy?
С помощью оператора : (срез)
: на соответствующей оси - к той мы обращаемся полностью
В двухмерном массиве:
a[0, :] все элементы первой строки
a[:, 0] все элементы первого столбца
Как работают срезы в NumPy?
Срезы в NumPy работают аналогично срезам в Python:
Пример:
Форма срезов (:): начальный_индекс:конечный_индекс:шаг.
a[0, 1:4:2]
Первое число означает, что мы начинаем брать элементы с первого индекса — второго столбца. В примере это число 2.
Второе число — что мы заканчиваем итерацию на четвёртом индексе, то есть проходим всю строку.
Третье число указывает, с каким шагом мы идём по строке. В нашем примере — с шагом в два элемента. То есть мы пройдём по элементам 1 и 3, которые соответствуют числам 2 и 4.
Как работает копирование и что происходит при reshape без явного копирования массива?
В NumPy массивы не копируются, если это явно не указано, с целью экономии памяти. Соответственно есть есть массив c и массив c1 = c.reshape(2,2), то дальнейшие изменения элементов в c1 приведут к изменениям в c. Если c1 = c.copy(), то c и c1 независимые разные массивы.
c
c1 = c.reshape(2,2)
c1 = c.copy()
c1
Как изменить форму массива в NumPy?
Метод reshape() используется для изменения формы массива, например, array.reshape(2, 3).
reshape() не создает новый массив и работает с тем же набором элементов, но представляя его с другой размерностью.
Что такое транспонирование массива в NumPy?
Транспонирование — это процесс изменения осей массива. В NumPy это выполняется с помощью метода arr.transpose()
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr.transpose() # Вывод: [[1, 4], [2, 5], [3, 6]]
Или через метод arr.T
Как заполнить массив указанными значениями:
Через метод arr.fill(value)
Как использовать broadcasting в NumPy?
Broadcasting – это механизм в NumPy, который позволяет выполнять арифметические операции над массивами разной формы. Broadcasting автоматически расширяет меньшие массивы до совместимого размера, чтобы сделать возможными операции между ними.
Основные принципы Broadcasting
1. Совместимость размеров массивов:
• Broadcasting срабатывает, если размеры массивов равны или хотя бы одна из их осей равна 1.
• Если массивы имеют разное количество осей, NumPy добавляет дополнительные оси к началу меньшего массива до выравнивания их по количеству.
2. Расширение по оси:
• Если одна из осей массива имеет размер 1, то NumPy “растягивает” этот массив по соответствующей оси, делая возможной операцию. Это виртуальное копирование элементов, при этом фактические данные не дублируются в памяти.
Что такое прихотливое индексирование?
Прихотливым индексированием (fancy indexing) называется использование массива или списка в качестве индекса.
e = np.array([[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[20, 21, 22, 23, 24],
[30, 31, 32, 33, 34],
[40, 41, 42, 43, 44]])
row_indices = [3, 2, 1]
col_indices = [1, 2, -1]
e[row_indices, col_indices]
Вывод:
array([31, 22, 14])
Как использовать маскирования в NumPy для индексирования массива ndarray?
Маскирование в NumPy позволяет выбирать элементы массива на основе логических условий, создавая булев массив, который указывает, какие элементы следует выбрать
array([0, 1, 2, 3, 4]
f[f % 2 == 0]
array([0, 2, 4])
Как создать массив из последовательности чисел в NumPy?
Для создания массива из последовательности используется функция np.arange(start, stop, step).
Какая функция в NumPy создает массив из равномерно распределенных значений в заданном интервале?
Функция np.linspace() из библиотеки NumPy создает массив, содержащий заданное количество равномерно распределенных значений в пределах указанного интервала.
К примеру, p.linspace(0, 10, 25) создать 25 равномерно распределенных чисел от 0 до 10.
p.linspace(0, 10, 25)
Если указать параметр (установлен автоматически) endpoint=True, то 10 будет включена.
endpoint=True
10
Какая функция в NumPy создает массив из значений, расположенных в геометрической прогрессии в заданном интервале?
Функция np.geomspace(start, stop, num) из библиотеки NumPy создает массив, в котором элементы представляют собой геометрическую прогрессию — последовательность значений, в которой каждый следующий элемент получается умножением предыдущего на определенное число (множитель).
np.geomspace(start, stop, num)
Параметры в вызове np.geomspace(1, 256, num=9):
• start=1: Начало интервала — первый элемент массива будет равен 1.
• stop=256: Конец интервала — последний элемент массива будет равен 256.
• num=9: Количество значений в массиве — в данном случае 9.
• endpoint=True (по умолчанию): Последнее значение (256) включается в массив.
Как создать массив случайных чисел в NumPy?
Для генерации случайных чисел используется функция np.random.rand() для массива от 0 до 1 и np.random.randint() для целых чисел.
В () указывается размерность массива
Как создать диагональную матрицу при помощи NumPy?
# диагональная матрица с заданными в аргументе значениями на диагонали
np.diag([1,2,3])
array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
Как при помощи NumPy создать массив
а) из единиц
б) из нулей
а) np.ones()
б) np.zeros()
Как вычислить сумму элементов массива в NumPy?
Для вычисления суммы элементов массива используется функция np.sum().
Как выполнять поэлементные операции над массивами в NumPy?
Универсальные функции (ufuncs) - функции, выполняющие поэлементные операции над данными, хранящимися в массиве. Это векторные операции на базе простых функций, работающих с одним или несколькими скалярными значениями и возвращающими скаляр.
Основные универсальные функции:
операции сравнения: <, <=, ==, !=, >=, >
арифметические операции: +, -, *, /, %, reciprocal, square
экспоненциальные функции: exp, expm1, exp2, log, log10, log1p, log2, power, sqrt
тригонометрические функции: sin, cos, tan, acsin, arccos, atctan
гиперболические функции: sinh, cosh, tanh, acsinh, arccosh, atctanh
побитовые операции: &, |, ~, ^, left_shift, right_shift
логические операции: and, logical_xor, not, or
предикаты: isfinite, isinf, isnan, signbit
другие функции: abs, ceil, floor, mod, modf, round, sinc, sign, trunc
Как провести матричное умножение в NumPy?
Через метод np.dot() или через бинарный оператор @
Как найти определитель и получить обратную матрицу?
Определитель - np.linalg.det(arr)
np.linalg.det(arr)
Обратная матрица - np.linalg.det(arr)
Как использовать маскирование в NumPy?
Маскирование позволяет фильтровать элементы массива по условиям, например: array[array > 5].
Какие два основных формата для хранения массивов ndarray предлагает NumPy?
npy - стандартный формат двоичного файла в NumPy для сохранения одного массива NumPy. Формат npy разработан так, чтобы быть максимально простым при достижении ограниченных целей.
npz - простой способ объединить несколько массивов в один файл, который использует zip архив (по умолчанию - не сжатый) для хранения нескольких файлов npy. Для этих архивов рекомендуется использовать расширение ".npz".
Как производится сохранение и загрузка одного массива в npy?
np.save - сохраняет единичный ndarray в бинарный файл формата npy.
np.save
np.load - загружает массивы или объекты, сохраненные с помощью pickle из npy, npz или файлов pickle.
np.load
Как производится сохранение и загрузка нескольких массивов в npz?
np.savez - сохраняет несколько ndarray в несжатый архив формата npz.
np.savez
np.savez_compressed - сохраняет несколько ndarray в сжатый архив формата npz.
np.savez_compressed
Сохранение:
a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
b = np.array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
np.savez('ab_ndarr.npz', a=a, b=b)
Загрузка:
npzfile = np.load('ab_ndarr.npz')
Как объединить массивы в NumPy?
• np.concatenate((arr1, arr2)) – объединяет массивы по заданной оси.
• np.vstack((arr1, arr2)) – объединяет массивы вертикально.
• np.hstack((arr1, arr2)) – объединяет массивы горизонтально.
Что такое оси в многомерных массивах NumPy?
В NumPy ось (axis) определяет направление в массиве. Например, в двумерном массиве ось 0 соответствует строкам, а ось 1 – столбцам. В многомерных массивах оси нумеруются по порядку, начиная с нуля..
Как извлечь уникальные значения из массива в NumPy?
Для извлечения уникальных значений из массива в NumPy используется функция np.unique(). Она принимает массив в качестве аргумента и возвращает новый массив, содержащий только уникальные значения, упорядоченные в порядке их появления.
np.unique()
Как вычислить среднее значение массива в NumPy?
Среднее значение массива в NumPy вычисляется с помощью функции np.mean(), которая суммирует все элементы массива и делит результат на количество элементов в массиве.
np.mean()
Как посчитать накопленную сумму и произведение в NumPy?
cumsum() - Возвращает массив, содержащий накопительную сумму элементов исходного массива вдоль указанной оси.
cumsum()
arr = np.array([1, 2, 3, 4])
np.cumsum(arr) # Вывод: [1, 3, 6, 10]
И аналогично cumprod()
cumprod()
Что такое предикаты в NumPy?
Предикаты возвращают логическое значение в зависимости от условий.
• arr.any()
• Описание: Проверяет, содержит ли массив хотя бы одно ненулевое или True значение.
• Синтаксис: .any()
• Пример:
arr = np.array([0, 0, 1, 0])
arr.any() # Вывод: True (есть хотя бы одно ненулевое значение)
И arr.all() проверяет все ли элементы ненулевые
Как создать DataFrame в Pandas?
DataFrame создается с использованием функции pd.DataFrame(), которая принимает данные в виде списка или словаря.
Как прочитать данные из CSV в Pandas?
Метод pd.read_csv('file.csv') загружает данные из CSV-файла в DataFrame.
Как выполнять группировку данных в Pandas?
Для группировки данных используется метод groupby(), который позволяет выполнять агрегатные операции по группам.
Как объединить два DataFrame в Pandas?
Методы merge() и concat() позволяют объединять DataFrame по общим столбцам или индексам.
Что такое фильтрация в Pandas?
Фильтрация — это процесс выбора строк или столбцов, удовлетворяющих условиям. В Pandas она выполняется с помощью булевой индексации.
Как создать Series в Pandas?
Series создается с использованием функции pd.Series(data), где data — это список, массив или словарь.
Как сортировать DataFrame в Pandas?
Для сортировки используется метод sort_values(), например: df.sort_values(by='column_name').
Как вычислить статистические показатели в Pandas?
Для вычисления среднего, медианы и стандартного отклонения используются методы mean(), median(), std().
Как удалить дубликаты из DataFrame в Pandas?
Для удаления дубликатов используется метод drop_duplicates().
Как выполнить объединение DataFrame по индексу в Pandas?
Для объединения по индексу используется метод join(), который объединяет DataFrame по строкам.
Как работать с пропущенными значениями в Pandas?
Пропущенные значения можно обрабатывать с помощью методов fillna() и dropna().
Как выбрать строки по условиям в Pandas?
Для выбора строк по условиям используется булева индексация, например: df[df['column'] > 5].
Last changed2 months ago