coo_matrix#
- класс scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[источник]#
Разреженная матрица в формате COOrdinate.
Также известен как формат 'ijv' или 'triplet'.
- Это может быть создано несколькими способами:
- coo_matrix(D)
где D — это 2-D ndarray
- coo_matrix(S)
с другой разреженной матрицей или массивом S (эквивалентно S.tocoo())
- coo_matrix((M, N), [dtype])
для создания пустой матрицы с формой (M, N) dtype опционален, по умолчанию dtype='d'.
- coo_matrix((data, (i, j)), [shape=(M, N)])
- для построения из трёх массивов:
data[:] элементы матрицы в любом порядке
i[:] индексы строк элементов матрицы
j[:] индексы столбцов элементов матрицы
Где
A[i[k], j[k]] = data[k]. Когда форма не указана, она выводится из индексных массивов
- Атрибуты:
- dtypedtype
Тип данных матрицы
shape2-кортежФорма матрицы
- ndimint
Количество измерений (всегда равно 2)
nnzКоличество хранимых значений, включая явные нули.
sizeКоличество сохранённых значений.
- данные
Массив данных в формате COO для матрицы
- строка
Массив индексов строк формата COO матрицы
- столбец
Массив индексов столбцов матрицы в формате COO
- has_canonical_formatbool
Имеет ли матрица отсортированные индексы и не содержит дубликатов
formatСтрока формата для матрицы.
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()Поэлементное округление вверх.
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])Эта функция выполняет поэлементное возведение в степень.
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.
tensordot(other[, axes])Возвращает тензорное произведение с другим массивом вдоль заданных осей.
toarray([order, out])Возвращает плотное представление ndarray для этого разреженного массива/матрицы.
tobsr([blocksize, copy])Преобразовать этот массив/матрицу в формат Block Sparse Row.
tocoo([copy])Преобразование этого массива/матрицы в формат COOrdinate.
tocsc([copy])Преобразовать этот массив/матрицу в формат Compressed Sparse Column
tocsr([copy])Преобразовать этот массив/матрицу в формат Compressed Sparse Row
todense([order, out])Вернуть плотное представление этой разреженной матрицы.
todia([copy])Преобразовать этот массив/матрицу в разреженный DIAгональный формат.
todok([copy])Преобразовать этот массив/матрицу в формат Dictionary Of Keys.
tolil([copy])Преобразовать этот массив/матрицу в формат List of Lists.
trace([offset])Возвращает сумму по диагоналям разреженного массива/матрицы.
transpose([axes, copy])Обращает размерности разреженного массива/матрицы.
trunc()Поэлементное усечение.
Примечания
Разреженные матрицы можно использовать в арифметических операциях: они поддерживают сложение, вычитание, умножение, деление и возведение матрицы в степень.
- Преимущества формата COO
обеспечивает быстрое преобразование между разреженными форматами
допускает повторяющиеся записи (см. пример)
очень быстрое преобразование в форматы CSR/CSC и обратно
- Недостатки формата COO
- не поддерживает напрямую:
арифметические операции
slicing
- Предполагаемое использование
COO — быстрый формат для построения разреженных матриц
После построения матрицы COO преобразуйте её в формат CSR или CSC для быстрых арифметических операций и операций с матрицами и векторами
По умолчанию при преобразовании в формат CSR или CSC повторяющиеся записи (i,j) будут суммированы. Это облегчает эффективное построение матриц конечных элементов и подобных структур. (см. пример)
- Канонический формат
Записи и координаты отсортированы по строкам, затем по столбцам.
Нет повторяющихся записей (т.е. дублирующихся позиций (i,j))
Массивы данных МОГУТ содержать явные нули.
Примеры
>>> # Constructing an empty matrix >>> import numpy as np >>> from scipy.sparse import coo_matrix >>> coo_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a matrix using ijv format >>> row = np.array([0, 3, 1, 0]) >>> col = np.array([0, 3, 1, 2]) >>> data = np.array([4, 5, 7, 9]) >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray() array([[4, 0, 9, 0], [0, 7, 0, 0], [0, 0, 0, 0], [0, 0, 0, 5]])
>>> # Constructing a matrix with duplicate coordinates >>> row = np.array([0, 0, 1, 3, 1, 0, 0]) >>> col = np.array([0, 2, 1, 3, 1, 0, 0]) >>> data = np.array([1, 1, 1, 1, 1, 1, 1]) >>> coo = coo_matrix((data, (row, col)), shape=(4, 4)) >>> # Duplicate coordinates are maintained until implicitly or explicitly summed >>> np.max(coo.data) 1 >>> coo.toarray() array([[3, 0, 1, 0], [0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1]])