numpy存取數(shù)據(jù)(tofile/fromfile)的實現(xiàn)
我們知道numpy的array是可以保存到文件的,一個常用的做法是通過to_file()保存到而進(jìn)行.bin文件中,然后再通過from_file()從.bin文件中將其讀取出來,下面看一個例子。
data_in 是一個二維numpy數(shù)組,其shape為[3,4]
import numpy as np
data_in = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]).astype(np.int64)
print(data_in)
data_in.tofile("C:/Users/Desktop/data_in.bin")
data_out = np.fromfile("C:/Users/Desktop/data_in.bin", dtype=np.int64)
print(data_out)
print(data_out.shape)
print(data_out.reshape(3,4))
接下來將其存入文件中,使用tofile方法即可,參數(shù)填入想要保存到的文件路徑,然后使用fromfile可以將其從文件中讀取出來。
但是可以發(fā)現(xiàn),讀取出來的data_out的shape變成1維了
首先,使用tofile方法,會默認(rèn)將所有數(shù)據(jù)按順序排成一個向量,然后以二進(jìn)制形式存入文件中,而讀取的時候自然會變成1維了,如果已知原始數(shù)組的維數(shù),將它reshape一下就行了
有時候data_out的最前面幾個值和之前看到的data_in的值也不一樣啊,這是為什么呢?
這需要 line 14 的數(shù)據(jù)類型和 line 9 的數(shù)據(jù)類型一致
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[ 1 2 3 4 5 6 7 8 9 10 11 12]
(12,)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
import numpy as np
input = np.random.randn(20, 224, 224, 3)
arr1 = np.array(input, dtype=np.float32)
print(arr1.shape)
print(arr1.dtype)
arr1.tofile("resnet50_input_batch20.bin")
參考文章
https://cloud.tencent.com/developer/article/1670550
https://mlhowto.readthedocs.io/en/latest/numpy.html
到此這篇關(guān)于numpy存取數(shù)據(jù)(tofile/fromfile)的實現(xiàn)的文章就介紹到這了,更多相關(guān)numpy存取數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)用http-post接口的實現(xiàn)方式
這篇文章主要介紹了Python調(diào)用http-post接口的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
Python的幾個高級語法概念淺析(lambda表達(dá)式閉包裝飾器)
本文主要記錄自己對幾個高級語法概念的理解:匿名函數(shù)、lambda表達(dá)式、閉包、裝飾器。這幾個概念并非Python特有,但本文只限于用Python做說明2016-05-05
Python批量發(fā)送post請求的實現(xiàn)代碼
昨天學(xué)了一天的Python(我的生產(chǎn)語言是java,也可以寫一些shell腳本,算有一點點基礎(chǔ)),今天有一個應(yīng)用場景,就正好練手了2018-05-05
使用python代碼進(jìn)行身份證號校驗的實現(xiàn)示例
這篇文章主要介紹了使用python代碼進(jìn)行身份證號校驗的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

