Scipy中的稀疏矩陣--介紹

稀疏矩陣介紹

1 介紹

(稠密)矩陣是:

  • 數學對象
  • 存儲二維數組的數據結構
 重要特質:
  • 所有元素內存一次性分配,在Numpy ndarray中通常是一個連續的塊
  • 快速訪問單個元素

1.1 爲什麼使用稀疏矩陣?

  • 內存增長速度爲n^2
  • 例子(雙精度矩陣):
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(0, 1e6, 10)
>>> plt.plot(x, 8.0 * (x**2) / 1e6, lw=5)
[<matplotlib.lines.Line2D object at ...>]
>>> plt.xlabel(’size n’)
<matplotlib.text.Text object at ...>
>>> plt.ylabel(’memory [MB]’)
<matplotlib.text.Text object at ...>

1.2 稀疏矩陣VS稀疏矩陣存儲方案

  • 稀疏矩陣是一個大部分元素爲空的矩陣
  • 存儲所有的零元素是非常浪費的->僅存儲非零元
  • 考慮壓縮
  • 優勢:節約大量內存
  • 弊端:依賴於實際的存儲方案,有時候不可行

1.3 典型應用

  • 求解偏微分方程(PDEs):有限元方法、工程機械,電工,物理等
  • 圖理論
  • 等等

1.4 先決條件

最新版本的:
  • numpy
  • scipy
  • matplotlib(可選)
  • ipython(功能強大)

1.5 稀疏結構可視化

  • matplotlib中的spy()
  • 圖例:





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章