03.03 第五期:秒級處理十億級表格數據

本期內容

PyHubWeekly每週定期更新,精選GitHub上優質的Python項目/小工具,本期為大家推薦GitHub上4個優質的Python項目,它們分別是:

  • tushare
  • python-cheatsheet
  • vaex
  • sh
  • python-small-examples

下面分別來介紹一下上述5個GitHub項目。

1. tushare

Star:8.8k

數據作為當前很多應用場景是至關重要的一環,例如,計算機視覺、數據分析,沒有數據,後續的開發工作和算法準確性就無從談起。 我們在kaggle、ImageNet能夠找到很多開放的數據資源用於我們的開發和研究工具,但是,這些數據這些數據更過的是偏重於工業,更重要的它們都是

靜態數據,也就是說不能及時的對數據進行更新迭代。 金融是數據分析應用非常多的一個方向,也是和我們生活比較密切相關的一個方向,例如,股票等。 我個人是對金融數據分析非常感興趣,有時候就在想從哪裡可以獲取到充足的數據支撐自己的研究?tushare就提供了很好的解決方案。 tushare是實現對股票/期貨等金融數據從數據採集、清洗加工到數據存儲過程的工具,滿足金融量化分析師和學習數據分析的人在數據獲取方面的需求,它的特點是數據覆蓋範圍廣,接口調用簡單,響應快速。

來看一個示例,

<code>>>> import tushare as ts
>>> ts.get_hist_data('600848')
2020-02-07 20.76 20.93 20.88 20.56   59584.18         0.07 ... 20.738 22.474 23.577 70873.17 58742.91 60007.62
2020-02-06 20.76 20.97 20.81 20.41   67450.28         0.01 ... 21.280 22.873 23.763 70166.75 60894.69 60617.59
2020-02-05 20.04 21.37 20.80 20.04   96036.71         0.83 ... 21.944 23.270 23.950 63541.08 59984.14 61566.66
2020-02-04 19.11 20.78 19.97 19.11 117212.70         -1.26 ... 22.582 23.704 24.114 56576.79 61412.18 59378.58
2020-02-03 21.23 21.23 21.23 21.23   14082.00         -2.36 ... 23.522 24.165 24.303 40371.67 54241.10 55358.40/<code>

可以看到,通過一些簡單的函數即可獲取一直股票的最新數據。

tushare除了支持數據採集,還支持清洗加工和數據存儲。

2. python-cheatsheet

Star:10.7k

python-cheatsheet是一個非常全面的Python手冊。

在很多系列化的教程和數據中,我們千篇一律的學習運算法、條件語句、循環語句、面向對象等。但是,對於開發過程中經常會用到的實用知識點卻很少有系統的闡述。python-cheatsheet就彌補了這項空白,它很系統全面的介紹了Python實用知識點,它主要包括如下幾個部分的內容,

  • 容器:列表、字典、集合等。
  • 類型:字符串、數字、日期、格式化等。
  • 語法:裝飾器、類等。
  • 數據:JSON、pickle等。
  • 高級:多線程、運算法等。
  • 模塊:NumPy、Logging等。
PyHubWeekly | 第五期:秒級處理十億級表格數據

3. vaex

Star:2.8k

vaex是一款類似於Pandas的的表格數據集處理和可視化工具,但是它在大量數據方面擁有Pandas所不具備的優勢:快速

vaex使用內存映射、零內存複製的策略可以實現每秒在超過十億個對象的N維網格數據計算平均值、和、計數、標準差等。此外,還可以使用柱狀圖、密度圖、三維圖進行可視化。

因此,它相對於其他數據處理工具具有如下幾點優勢,

  • 性能表現優秀
  • 高效的內存處理
  • 可視化
  • 用戶友好
  • 支持jupyter
  • 輕量化

4. sh

Star:5.2k

多進程是我們在開發過程中經常會接觸到的場景,每當希望提升項目運行效率時,多進程就是其中備選項之一。

在Python開發中,當提到多進程是都會涉及到subprocess,它是Python內置的模塊,因此,使用頻率非常高。

今天介紹的sh是Python 2.6-3.6中subprocess非常值得嘗試的替代者。

它能夠讓你向調用Python函數一樣去調用系統命令和程序。

<code>>>> from sh import ifconfig
>>> print(ifconfig("wlan0"))
wlan0   Link encap:Ethernet HWaddr 00:00:00:00:00:00
      inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
      inet6 addr: ffff::ffff:ffff:ffff:fff/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:0 (0 GB) TX bytes:0 (0 GB)/<code>

但是,需要指出,當前sh僅支持Linuxosx,不支持Windows。

5. python-small-examples

Star:1.8k

python-small-examples是一個可以在閒暇之餘抽空看看的Python學習項目。

python-small-examples收集了Python開發過程中遇到的坑點、小樣例,其中包括Python字符串和正則、Python繪圖、Python日期和文件、Web開發、數據科學、機器學習、深度學習、TensorFlow、Pytorch等。

對於這個項目,沒必要花費太多時間系統的去學習,可以利用空閒時間看一下,它裡面總結了開發過程中經常用到的操作,當我們看到這些示例時會從中學習到很多教材上無法學到的妙用,或者Python中“不為人知”的冷門知識。

PyHubWeekly | 第五期:秒級處理十億級表格數據



分享到:


相關文章: