Python 检查上三角矩阵或下三角矩阵

Python 检查上三角矩阵或下三角矩阵,python,numpy,scipy,Python,Numpy,Scipy,是否有任何方法,使用numpy或scipy检查矩阵是上三角矩阵还是下三角矩阵?。我知道如何做一个函数来检查这一点;但我想知道这些模块是否有自己的功能。我正在文档中搜索,但没有找到任何内容。我会的 np.allclose(mat, np.tril(mat)) # check if lower triangular np.allclose(mat, np.triu(mat)) # check if upper triangular np.allclose(mat, np.diag(np.diag(m

是否有任何方法,使用numpy或scipy检查矩阵是上三角矩阵还是下三角矩阵?。我知道如何做一个函数来检查这一点;但我想知道这些模块是否有自己的功能。我正在文档中搜索,但没有找到任何内容。

我会的

np.allclose(mat, np.tril(mat)) # check if lower triangular
np.allclose(mat, np.triu(mat)) # check if upper triangular
np.allclose(mat, np.diag(np.diag(mat))) # check if diagonal

太棒了!要对角检查吗?有没有办法避免复制?我想不出用numpy来避免复制的方法。如果这是我代码中的瓶颈,我会尝试用cython或numba编写测试