剛剛上研,通過實驗拿到一堆數據,之前並沒有數據處理的背景。對於做科研的話,請問大家是用什麼工具來管理自己的數據的呢?

另外,需要方便用Python等數據分析工具來調用,希望大家幫忙出出招。


先吐槽一下問題,這個問題問了等於沒有問。脫離數據本身的來源、描述對象、變數數量、變數值的結構等數據本身的特徵討論儲存數據的工具等於刷流氓。

首先,對於Python來說,儲存任何常見(甚至不常見)格式都是可以調用的,如果數據量大到數據儲存會影響Python調用,那麼問題不僅僅是對於Python,而是這個數據本身就比較難對付,往往需要大數據工程的專業方案。

Python調用各種資料庫和文件的包主要是:

  • 原生的open函數:調用文本格式數據。
  • csv(https://docs.python.org/3/library/csv.html):調用CSV格式數據。
  • json(https://docs.python.org/3/library/json.html):調用json格式數據。
  • SQL:可以調用自帶的sqlite3(sqlite3 - DB-API 2.0 interface for SQLite databases - Python 3.7.2rc1 documentation),可以調用MySQL(MySQLdb Users Guide),還有其他多種SQL資料庫及很多類似的包。
  • pymongo(PyMongo 3.7.2 Documentation):調用MongoDB數據。

完整的Python調用資料庫的說明詳見:DatabaseInterfaces - Python Wiki。

此外,Pandas也提供了非常豐富的工具調用各種結構化數據並轉化成DataFrame,推薦優先選擇,詳細說明詳見:IO Tools (Text, CSV, HDF5, …)。

從數據本身,大概可以分為文本和資料庫兩種儲存格式;從數據結構分,大概可以分為結構化和非結構化兩種數據。大概可以分為四類儲存方案:

  • 結構化數據、文本儲存,主要是TXT、CSV、Excel(xlsx格式)。
  • 結構化數據、資料庫儲存,主要是各種SQL資料庫,比如MySQL等等。
  • 非結構化數據、文本儲存,主要是TXT、JSON等。
  • 非結構化數據、資料庫儲存,主要是MongoDB等No-SQL資料庫,詳細介紹可以看上面的資料庫清單。

如果題主有進一步關於數據結構的描述,本答案會就具體格式繼續討論。


TXT、Excel和MySQL一般就夠用了。


一堆是多少……數據是什麼類型……你說的"管理"是想管理什麼……你留著是想用來做哪方面的研究?

若干GB的數據不確定幹嘛txt/csv存著,目錄分項目整理整理清楚也挺好的;

數十上百GB,平時又需要查詢什麼的,那存個關係資料庫裏也挺好也通用;

若干T的,那一般是專門一個項目的數據,大多單用一塊硬碟,高價值的做個備份;

再往上的數據,那一般也不用你來保存吧,這麼大量的數據,企業可能分散式存著,你要什麼和管理人提需求滿足你;

明確研究方向的,自然會接觸專有格式比如二進位之類的;有特殊需求的,可能圖資料庫之類專有工具……

我覺得大概率你是想多了,這不是什麼研究重點,導師特殊要求自然會告訴你的,放輕鬆。電腦裏文件夾目錄層級分分好,多個備份的心眼,就挺好的。


我覺得首先不要期望所有的數據都是一個格式的,比如txt或者csv,應該面向項目面向項目工具來使用,比如Python的notebook,MATLAB的mat。

然後數據一定要和項目放在一起,方便自己管理,那這樣其實轉換成項目怎麼管理的問題,項目or實驗參考放哪裡,電子教材放哪裡等等。對於pdf論文,endnote,mendeley等都不錯。

此外還有大文件小文件分離,以及雲盤備份。不管你用不用雲盤,項目的核心文檔,也不過十幾M,再附加一個demo video,也才百來M吧,而使用到的數據或者產生的中間結果(對於mat這種非壓縮格式你懂)動輒幾百M或者幾個G,這可能就是「大數據」時代吧。如果有心可以給所有項目產生的大容量數據劃個新文件夾稱作「LargeData」或「大於1G的數據」等等。分離小文件一是方便雲盤備份,二是你需要展示拷貝小文件就可以了。

然後就是目錄管理,這個。。。想吐槽的多了,比如Windows用戶很喜歡劃3到4的盤。。。再議。。。

接上面,搜索和索引。如果你目錄管理做得很好,打開資源管理器一個一個點進去都是可以的,現在Windows 10個「最近窗口」功能,賊好用,關掉的窗口會記住,方便下次打開。但是很多時候你懶或者受不了了想快一點,那直接win q快捷鍵就好了,或者用第三方的Everything。對,這個也基於自己的命名習慣。我自己習慣也不好,有時候-分詞有時候空格,有時候中文命名有時候英文。

但不管怎樣,保證怎麼樣去找,文件都能找到,而且要越快越好。

總結來說,數據是給實驗用的,不大會方便你管理。比如實驗要用protobuf,你也不會用txt存二進位數據對吧。以及數據其實也是文件組成,怎麼管理好這些文件。再就是數據冗餘,都是勞動的成果啊QwQ。能夠完善自己這一套,達到自己的要求,比如這個數據我備份了幾份,都存在哪兒,我的核心文檔都寫的怎麼樣了,那些數據最近經常用,加一個快捷方式,又有哪些數據我已經用完項目結題,那麼可以壓縮歸檔了。這也是一個動態過程,而且每個人使用習慣也不同,慢慢學習吧。


Excel就很好,自己就有大量的分析功能,Python編程的支持也多。


資料庫 mysql


樓主是學生,那麼我認為優先用文本數據格式,文本這個東西很方便存儲和發送。csv就很好,存儲前自己調試下,保證csv格式能滿足你今後的調用即可。保存後記得多備份幾個副本,防止丟失和誤操作。


#是也乎#

╮(╯▽╰)╭

linux


mysql,mangodb,redis,推薦redis


用sas吧,以前我也覺得python好,現在發現如果只是做數據分析,不做機器學習,sas非常強,隨便說下,我們公司用sas。感覺不錯。


推薦閱讀:
相關文章