coo_array#
- класс scipy.sparse.coo_array(arg1, shape=None, dtype=None, copy=False, *, maxprint=None)[источник]#
Разреженный массив в формате COOrdinate.
Также известен как формат 'ijv' или 'triplet'.
- Это может быть создано несколькими способами:
- coo_array(D)
где D — это ndarray
- coo_array(S)
с другой разреженной матрицей или массивом S (эквивалентно S.tocoo())
- coo_array(shape, [dtype])
для создания пустого разреженного массива с формой
shapedtype опционален, по умолчанию dtype='d'.- coo_array((данные, координаты), [форма])
- для построения из существующих данных и массивов индексов:
data[:] элементы разреженного массива в любом порядке
coords[i][:] координаты по оси i для записей данных
Где
A[coords] = data, и coords — это кортеж массивов индексов. Когда shape не указан, он выводится из массивов индексов.
- Атрибуты:
- dtypedtype
Тип данных разреженного массива
- shapeкортеж целых чисел
Форма разреженного массива
- ndimint
Количество измерений разреженного массива
nnzКоличество хранимых значений, включая явные нули.
sizeКоличество сохранённых значений.
- данные
Массив данных в формате COO разреженного массива
- coords
Кортеж формата COO массивов индексов
- has_canonical_formatbool
Имеет ли матрица отсортированные координаты и отсутствие дубликатов
formatСтрока формата для матрицы.
TТранспонирование.
Методы
__len__()arcsin()Поэлементный арксинус.
arcsinh()Поэлементный arcsinh.
arctan()Поэлементный арктангенс.
arctanh()Поэлементный арктангенс гиперболический.
argmax([axis, out, explicit])Возвращает индексы максимальных элементов вдоль оси.
argmin([axis, out, explicit])Возвращает индексы минимальных элементов вдоль оси.
asformat(format[, copy])Вернуть этот массив/матрицу в переданном формате.
astype(dtype[, casting, copy])Привести элементы массива/матрицы к указанному типу.
ceil()Поэлементное округление вверх.
conj([copy])Поэлементное комплексное сопряжение.
conjugate([copy])Поэлементное комплексное сопряжение.
copy()Возвращает копию этого массива/матрицы.
count_nonzero([axis])Количество ненулевых элементов, эквивалентно
deg2rad()Поэлементное преобразование градусов в радианы.
diagonal([k])Возвращает k-ю диагональ массива/матрицы.
dot(other)Возвращает скалярное произведение двух массивов.
Удалить нулевые элементы из массива/матрицы
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])Эта функция выполняет поэлементное возведение в степень.
rad2deg()Поэлементное преобразование радиан в градусы.
reshape(self, shape[, order, copy])Придаёт новую форму разреженному массиву/матрице без изменения данных.
resize(*shape)Изменить размер массива/матрицы на месте до размеров, заданных
shaperint()Поэлементный rint.
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()Поэлементное усечение.
__mul__
Примечания
Разреженные массивы можно использовать в арифметических операциях: они поддерживают сложение, вычитание, умножение, деление и возведение матрицы в степень.
- Преимущества формата COO
обеспечивает быстрое преобразование между разреженными форматами
допускает повторяющиеся записи (см. пример)
очень быстрое преобразование в форматы CSR/CSC и обратно
- Недостатки формата COO
- не поддерживает напрямую:
арифметические операции
slicing
- Предполагаемое использование
COO — это быстрый формат для построения разреженных массивов
После построения массива COO преобразовать в формат CSR или CSC для быстрых арифметических операций и операций с матрицами и векторами
По умолчанию при преобразовании в формат CSR или CSC повторяющиеся записи (i,j) будут суммированы. Это облегчает эффективное построение матриц конечных элементов и подобных структур. (см. пример)
- Канонический формат
Записи и координаты отсортированы по строкам, затем по столбцам.
Нет повторяющихся записей (т.е. дублирующихся позиций (i,j))
Массивы данных МОГУТ содержать явные нули.
Примеры
>>> # Constructing an empty sparse array >>> import numpy as np >>> from scipy.sparse import coo_array >>> coo_array((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a sparse array 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_array((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 sparse array 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_array((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]])