bsr_matrix#
- класс scipy.sparse.bsr_matrix(arg1, shape=None, dtype=None, copy=False, размер блока=None, *, maxprint=None)[источник]#
Разреженная матрица в формате Block Sparse Row.
- Это может быть создано несколькими способами:
- bsr_matrix(D, [blocksize=(R,C)])
где D — это двумерный ndarray.
- bsr_matrix(S, [blocksize=(R,C)])
с другой разреженной матрицей или массивом S (эквивалентно S.tobsr())
- bsr_matrix((M, N), [blocksize=(R,C), dtype])
для создания пустой разреженной матрицы с формой (M, N) dtype необязателен, по умолчанию dtype='d'.
- bsr_matrix((data, ij), [blocksize=(R,C), shape=(M, N)])
где
dataиijудовлетворятьa[ij[0, k], ij[1, k]] = data[k]- bsr_matrix((data, indices, indptr), [shape=(M, N)])
является стандартным представлением BSR, где индексы блочных столбцов для строки i хранятся в
indices[indptr[i]:indptr[i+1]]и их соответствующие значения блоков хранятся вdata[ indptr[i]: indptr[i+1] ]. Если параметр shape не предоставлен, размеры матрицы выводятся из индексных массивов.
- Атрибуты:
- dtypedtype
Тип данных матрицы
shape2-кортежФорма матрицы
- ndimint
Количество измерений (всегда равно 2)
nnzКоличество хранимых значений, включая явные нули.
sizeКоличество сохранённых значений.
- данные
Массив данных в формате BSR матрицы
- индексы
Индексный массив формата BSR матрицы
- indptr
Массив указателей индексов формата BSR матрицы
blocksizeРазмер блока матрицы.
has_sorted_indicesboolОтсортированы ли индексы
has_canonical_formatboolИмеет ли массив/матрица отсортированные индексы и отсутствие дубликатов
TТранспонирование.
Методы
__len__()__mul__(other)arcsin()Поэлементный арксинус.
arcsinh()Поэлементный arcsinh.
arctan()Поэлементный арктангенс.
arctanh()Поэлементный арктангенс гиперболический.
argmax([axis, out, explicit])Возвращает индексы максимальных элементов вдоль оси.
argmin([axis, out, explicit])Возвращает индексы минимальных элементов вдоль оси.
asformat(format[, copy])Вернуть этот массив/матрицу в переданном формате.
asfptype()Приведение матрицы к формату с плавающей точкой (при необходимости)
astype(dtype[, casting, copy])Привести элементы массива/матрицы к указанному типу.
ceil()Поэлементное округление вверх.
check_format([full_check])Проверить, соответствует ли массив/матрица формату BSR.
conj([copy])Поэлементное комплексное сопряжение.
conjugate([copy])Поэлементное комплексное сопряжение.
copy()Возвращает копию этого массива/матрицы.
count_nonzero([axis])Количество ненулевых элементов, эквивалентно
deg2rad()Поэлементное преобразование градусов в радианы.
diagonal([k])Возвращает k-ю диагональ массива/матрицы.
dot(other)Обычное скалярное произведение
Удалить нулевые элементы на месте.
expm1()Поэлементный expm1.
floor()Поэлементное округление вниз.
getH()Возвращает эрмитово сопряжённую матрицу.
Получить форму матрицы
getcol(j)Возвращает копию столбца j матрицы в виде разреженной матрицы (m x 1) (вектор-столбец).
Формат хранения матрицы
Максимальное количество элементов для отображения при печати.
getnnz([axis])Количество хранимых значений, включая явные нули.
getrow(i)Возвращает копию строки i матрицы в виде разреженной матрицы (1 x n) (вектор-строка).
log1p()Поэлементный log1p.
max([axis, out, explicit])Возвращает максимум массива/матрицы или максимум вдоль оси.
maximum(other)Поэлементный максимум между этим и другим массивом/матрицей.
mean([axis, dtype, out])Вычисляет среднее арифметическое вдоль указанной оси.
min([axis, out, explicit])Возвращает минимум массива/матрицы или максимум вдоль оси.
minimum(other)Поэлементный минимум между этим и другим массивом/матрицей.
multiply(other)Поэлементное умножение на другой массив/матрицу.
nanmax([axis, out, explicit])Вернуть максимум, игнорируя любые NaN, вдоль оси.
nanmin([axis, out, explicit])Возвращает минимум, игнорируя любые NaN, вдоль оси.
nonzero()Ненулевые индексы массива/матрицы.
power(n[, dtype])Эта функция выполняет поэлементное возведение в степень.
prune()Удалить пустое пространство после всех ненулевых элементов.
rad2deg()Поэлементное преобразование радиан в градусы.
reshape(self, shape[, order, copy])Придаёт новую форму разреженному массиву/матрице без изменения данных.
resize(*shape)Изменить размер массива/матрицы на месте до размеров, заданных
shaperint()Поэлементный rint.
set_shape(форма)Установить форму матрицы на месте
setdiag(values[, k])Установить диагональные или внедиагональные элементы массива/матрицы.
sign()Поэлементный знак.
sin()Поэлементный синус.
sinh()Поэлементный sinh.
Сортировать индексы этого массива/матрицы на месте
Вернуть копию этого массива/матрицы с отсортированными индексами
sqrt()Поэлементное вычисление квадратного корня.
sum([axis, dtype, out])Суммировать элементы массива/матрицы по заданной оси.
Устранить дублирующиеся записи массивов/матриц, складывая их вместе
tan()Поэлементный тангенс.
tanh()Поэлементный tanh.
toarray([order, out])Возвращает плотное представление ndarray для этого разреженного массива/матрицы.
tobsr([blocksize, copy])Преобразовать этот массив/матрицу в формат Block Sparse Row.
tocoo([copy])Преобразование этого массива/матрицы в формат COOrdinate.
tocsc([copy])Преобразовать этот массив/матрицу в формат сжатого разреженного столбца.
tocsr([copy])Преобразовать этот массив/матрицу в формат сжатых строк (CSR).
todense([order, out])Вернуть плотное представление этой разреженной матрицы.
todia([copy])Преобразовать этот массив/матрицу в разреженный DIAгональный формат.
todok([copy])Преобразовать этот массив/матрицу в формат Dictionary Of Keys.
tolil([copy])Преобразовать этот массив/матрицу в формат List of Lists.
trace([offset])Возвращает сумму по диагоналям разреженного массива/матрицы.
transpose([axes, copy])Обращает размерности разреженного массива/матрицы.
trunc()Поэлементное усечение.
__getitem__
Примечания
Разреженные матрицы можно использовать в арифметических операциях: они поддерживают сложение, вычитание, умножение, деление и возведение матрицы в степень.
Сводка по формату BSR
Формат блочной разреженной строки (BSR) очень похож на формат сжатой разреженной строки (CSR). BSR подходит для разреженных матриц с плотными подматрицами, как в последнем примере ниже. Такие разреженные блочные матрицы часто возникают при векторных конечно-элементных дискретизациях. В таких случаях BSR значительно эффективнее CSR и CSC для многих арифметических операций с разреженными матрицами.
Размер блока
Размер блока (R,C) должен равномерно делить форму разреженной матрицы (M,N). То есть R и C должны удовлетворять соотношению
M % R = 0иN % C = 0.Если размер блока не указан, применяется простая эвристика для определения подходящего размера блока.
Канонический формат
В каноническом формате нет дублирующихся блоков, и индексы отсортированы по строкам.
Ограничения
Разреженные матрицы в формате Block Sparse Row не поддерживают срезы.
Примеры
>>> import numpy as np >>> from scipy.sparse import bsr_matrix >>> bsr_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> row = np.array([0, 0, 1, 2, 2, 2]) >>> col = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3 ,4, 5, 6]) >>> bsr_matrix((data, (row, col)), shape=(3, 3)).toarray() array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
>>> indptr = np.array([0, 2, 3, 6]) >>> indices = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3, 4, 5, 6]).repeat(4).reshape(6, 2, 2) >>> bsr_matrix((data,indices,indptr), shape=(6, 6)).toarray() array([[1, 1, 0, 0, 2, 2], [1, 1, 0, 0, 2, 2], [0, 0, 0, 0, 3, 3], [0, 0, 0, 0, 3, 3], [4, 4, 5, 5, 6, 6], [4, 4, 5, 5, 6, 6]])