对角化
将 COO 数组对角化。新维度追加在末尾。
警告
sparse.diagonalize
不兼容 numpy,因为 NumPy 没有直接的等效项。API 在未来可能会发生变化。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
a
|
Union[COO, ndarray, spmatrix]
|
要对角化的数组。 |
必需 |
axis
|
int
|
要对角化的轴。默认为第一个轴(0)。 |
0
|
示例
>>> import sparse
>>> x = sparse.as_coo(np.arange(1, 4))
>>> sparse.diagonalize(x).todense()
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])
>>> x = sparse.as_coo(np.arange(24).reshape((2, 3, 4)))
>>> x_diag = sparse.diagonalize(x, axis=1)
>>> x_diag.shape
(2, 3, 4, 3)
sparse.diagonalize
是 sparse.diagonal
的逆操作。
>>> a = sparse.random((3, 3, 3, 3, 3), density=0.3)
>>> a_diag = sparse.diagonalize(a, axis=2)
>>> (sparse.diagonal(a_diag, axis1=2, axis2=5) == a.transpose([0, 1, 3, 4, 2])).all()
np.True_
返回值
名称 | 类型 | 描述 |
---|---|---|
out |
COO
|
操作的结果。 |
另请参阅
numpy.diag
: 一维数组的 NumPy 等效项
源代码位于 sparse/numba_backend/_coo/common.py
869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 |
|