亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以壓縮二進制格式在golang中存儲矩陣

以壓縮二進制格式在golang中存儲矩陣

Go
精慕HU 2021-11-15 15:15:02
我正在探索Go和之間的比較Python,特別是對于數學計算。我注意到Go有一個矩陣包mat64。1)我想問一下同時使用這兩種方法的人Go,Python是否有與Numpy's等價的功能/工具可比較,savez_compressed它以某種npz格式(即“壓縮”二進制,每個文件有多個矩陣)存儲Go's 矩陣的數據?2) 另外,Go 的矩陣可以像Numpy那樣處理字符串類型嗎?
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

1) .npz 是一種 numpy 特定格式。Go 本身不太可能在標準庫中支持這種格式。我也不知道今天存在任何第三方庫,并且(10 秒)搜索沒有彈出。如果您特別需要 npz,請使用 python + numpy。

如果你只是想從 Go 中得到類似的東西,你可以使用任何格式。二進制格式包括golang binarygob。根據您要執行的操作,您甚至可以使用非二進制格式(如json)并自行壓縮。

2) Go 沒有內置矩陣。你找到的那個庫是第三方的,它只處理float64s.

但是,如果您只需要以矩陣(n 維)格式存儲字符串,則可以使用 n 維切片。對于2維它看起來像這樣:var myStringMatrix [][]string。


查看完整回答
反對 回復 2021-11-15
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

npz文件是zip檔案。歸檔和壓縮(可選)由 Pythonzip模塊處理。在npz包含一個npy文件的每個變量保存。任何基于操作系統的歸檔工具都可以解壓縮和提取組件.npy文件。

所以剩下的問題是 - 你能模擬npy格式嗎?這不是微不足道的,但也不難。它由一個包含形狀、步幅、dtype 和順序信息的頭塊組成,后跟一個數據塊,實際上是數組數據緩沖區的字節圖像。

因此緩沖區信息和數據與numpy數組內容密切相關。如果變量不是普通數組,則save使用 Python pickle 機制。

首先,我建議使用該csv格式。它不是二進制的,也不快,但每個人和他的兄弟都可以生成并閱讀它。我們不斷收到有關使用np.loadtxt或讀取此類文件的問題np.genfromtxt。查看代碼np.savetxt以了解如何numpy生成此類文件。這很簡單。

另一個通用選擇是使用tolist數組格式的JSON 。之所以想到這一點,GO是因為它是 Google 自己開發的用于 Web 應用程序的 Python 替代品。JSON 是一種基于簡化 Javascript 語法的跨語言格式。


查看完整回答
反對 回復 2021-11-15
  • 2 回答
  • 0 關注
  • 328 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號