safely_cast_index_arrays#
-
scipy.sparse.safely_cast_index_arrays(A, idx_dtype=
'numpy.int32'> , msg='')[источник]# Безопасное приведение индексов разреженного массива к idx_dtype.
Проверить форму A для определения, безопасно ли преобразовать его индексные массивы в тип данных idx_dtype. Если любое измерение в shape больше, чем помещается в dtype, приведение типов небезопасно, поэтому вызывается исключение
ValueError. Если безопасно, привести массивы индексов к idx_dtype и возвращает результат без изменения входных данных A. Вызывающий может присвоить результаты A атрибуты, если нужно, или использовать преобразованные индексные массивы напрямую.Если понижающее приведение типов не требуется, возвращаются исходные индексные массивы. Вы можете проверить, например,
A.indptr is new_indptrчтобы проверить, произошло ли понижение типа.Добавлено в версии 1.15.0.
- Параметры:
- Aразреженный массив или матрица
Массив, для которого индексные массивы должны быть понижены.
- idx_dtypedtype
Желаемый тип данных. Должен быть целочисленным типом данных (по умолчанию:
np.int32). Большая часть scipy.sparse использует либо int64, либо int32.- msgstring, optional
Строка, добавляемая в конец сообщения ValueError, если форма массива слишком велика для размещения в idx_dtype. Сообщение об ошибке
f"Должно указывать, почему необходимо понижение типа, например, "SuperLU", по умолчанию используется f"dtype {idx_dtype}".values too large for {msg}"
- Возвращает:
- idx_arraysndarray или кортеж ndarrays
На основе
A.format, массивы индексов возвращаются после приведения к idx_dtype. Для CSC/CSR возвращает(indices, indptr). Для COO, возвращаетcoords. Для DIA возвращаетoffsets. Для BSR возвращает(indices, indptr).
- Вызывает:
- ValueError
Если массив имеет форму, которая не подходит для нового типа данных, или если разреженный формат не использует массивы индексов.
Примеры
>>> import numpy as np >>> from scipy import sparse >>> data = [3] >>> coords = (np.array([3]), np.array([1])) # Note: int64 arrays >>> A = sparse.coo_array((data, coords)) >>> A.coords[0].dtype dtype('int64')
>>> # rescast after construction, raising exception if shape too big >>> coords = sparse.safely_cast_index_arrays(A, np.int32) >>> A.coords[0] is coords[0] # False if casting is needed False >>> A.coords = coords # set the index dtype of A >>> A.coords[0].dtype dtype('int32')