稀疏矩阵可视化

时间:2019-05-02 15:35:55

标签: numpy scipy sparse-matrix

我正在从事有限元分析。我只想评估一个简单的矩阵乘法并查看数值结果。如何查看稀疏矩阵的元素?

我使用的代码是:

U_h= 0.5 * np.dot(np.dot(U[np.newaxis], K), U[np.newaxis].T)

由于U是一个1x3矩阵,K是3x3矩阵,而U.T是3x1矩阵,我希望其中有一个数字的1x1矩阵。但是,结果是“ [[<< 3x3类'numpy.float64'类型的稀疏矩阵,其中有3个以压缩稀疏行格式存储的元素>]]”

2 个答案:

答案 0 :(得分:0)

conditions_a = [1,2,3]
conditions_b_given_a = {1 => [11,12,13],
                        2 => [21,22,23],
                        3 => [31,32,33]}

Model.where(column_a: conditions_a,
            column_b: conditions_b_given_a[:column_a] )
     .order(:something)
     .limit(100)

您得到的是矩阵的In [260]: M = sparse.random(5,5,.2, format='csr') 格式:

repr

使用的In [261]: M Out[261]: <5x5 sparse matrix of type '<class 'numpy.float64'>' with 5 stored elements in Compressed Sparse Row format> In [262]: repr(M) Out[262]: "<5x5 sparse matrix of type '<class 'numpy.float64'>'\n\twith 5 stored elements in Compressed Sparse Row format>" 格式打印为:

str

如果矩阵不大,则将其显示为密集数组是不错的选择。 In [263]: print(M) (1, 0) 0.7152749140462651 (1, 1) 0.4298096228326874 (1, 3) 0.8148327301300698 (4, 0) 0.23366934073409018 (4, 3) 0.6117499168861333 In [264]: str(M) Out[264]: ' (1, 0)\t0.7152749140462651\n (1, 1)\t0.4298096228326874\n (1, 3)\t0.8148327301300698\n (4, 0)\t0.23366934073409018\n (4, 3)\t0.6117499168861333' 就是这样做,或者简而言之:

M.toarray()

答案 1 :(得分:0)

  • 对于图形检查,请使用plt.spy()
  • 查看适用示例here
  • 请参见参考手册here