scipy.sparse.

bsr_array#

класс scipy.sparse.bsr_array(arg1, shape=None, dtype=None, copy=False, размер блока=None, *, maxprint=None)[источник]#

Разреженный массив в формате блочной разреженной строки.

Это может быть создано несколькими способами:
bsr_array(D, [blocksize=(R,C)])

где D — это двумерный ndarray.

bsr_array(S, [blocksize=(R,C)])

с другой разреженной матрицей или массивом S (эквивалентно S.tobsr())

bsr_array((M, N), [blocksize=(R,C), dtype])

для создания пустого разреженного массива с формой (M, N) dtype является необязательным, по умолчанию dtype='d'.

bsr_array((data, ij), [blocksize=(R,C), shape=(M, N)])

где data и ij удовлетворять a[ij[0, k], ij[1, k]] = data[k]

bsr_array((data, indices, indptr), [shape=(M, N)])

является стандартным представлением BSR, где индексы блочных столбцов для строки i хранятся в indices[indptr[i]:indptr[i+1]] и их соответствующие значения блоков хранятся в data[ indptr[i]: indptr[i+1] ]. Если параметр формы не указан, размеры массива выводятся из индексных массивов.

Атрибуты:
dtypedtype

Тип данных массива

shape2-кортеж

Форма массива

ndimint

Количество измерений (всегда равно 2)

nnz

Количество хранимых значений, включая явные нули.

size

Количество сохранённых значений.

данные

Массив данных формата BSR массива

индексы

Индексный массив формата BSR массива

indptr

Массив указателей индексов формата BSR массива

blocksize

Размер блока матрицы.

has_sorted_indicesbool

Отсортированы ли индексы

has_canonical_formatbool

Имеет ли массив/матрица отсортированные индексы и отсутствие дубликатов

T

Транспонирование.

Методы

__len__()

arcsin()

Поэлементный арксинус.

arcsinh()

Поэлементный arcsinh.

arctan()

Поэлементный арктангенс.

arctanh()

Поэлементный арктангенс гиперболический.

argmax([axis, out, explicit])

Возвращает индексы максимальных элементов вдоль оси.

argmin([axis, out, explicit])

Возвращает индексы минимальных элементов вдоль оси.

asformat(format[, copy])

Вернуть этот массив/матрицу в переданном формате.

astype(dtype[, casting, copy])

Привести элементы массива/матрицы к указанному типу.

ceil()

Поэлементное округление вверх.

check_format([full_check])

Проверить, соответствует ли массив/матрица формату BSR.

conj([copy])

Поэлементное комплексное сопряжение.

conjugate([copy])

Поэлементное комплексное сопряжение.

copy()

Возвращает копию этого массива/матрицы.

count_nonzero([axis])

Количество ненулевых элементов, эквивалентно

deg2rad()

Поэлементное преобразование градусов в радианы.

diagonal([k])

Возвращает k-ю диагональ массива/матрицы.

dot(other)

Обычное скалярное произведение

eliminate_zeros()

Удалить нулевые элементы на месте.

expm1()

Поэлементный expm1.

floor()

Поэлементное округление вниз.

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)

Изменить размер массива/матрицы на месте до размеров, заданных shape

rint()

Поэлементный rint.

setdiag(values[, k])

Установить диагональные или внедиагональные элементы массива/матрицы.

sign()

Поэлементный знак.

sin()

Поэлементный синус.

sinh()

Поэлементный sinh.

sort_indices()

Сортировать индексы этого массива/матрицы на месте

sorted_indices()

Вернуть копию этого массива/матрицы с отсортированными индексами

sqrt()

Поэлементное вычисление квадратного корня.

sum([axis, dtype, out])

Суммировать элементы массива/матрицы по заданной оси.

sum_duplicates()

Устранить дублирующиеся записи массивов/матриц, складывая их вместе

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__

__mul__

Примечания

Разреженные массивы можно использовать в арифметических операциях: они поддерживают сложение, вычитание, умножение, деление и возведение матрицы в степень.

Сводка по формату 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_array
>>> bsr_array((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_array((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_array((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]])