python?存儲(chǔ)變量的幾種方法(推薦)
1. numpy 自帶方法
numpy.save()
:數(shù)組會(huì)以未壓縮的原始二進(jìn)制格式保存在擴(kuò)展名為. npy 的文件中。numpy.load()
:讀取 .npy 文件的數(shù)據(jù),直接轉(zhuǎn)換為 numpy 數(shù)組
???<<舉例>>???
>>> import numpy as np >>> a = np.arange(24).reshape(2,3,4) >>> a array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) >>> np.save("D:/aa/npp.npy", a) >>> b = np.load("D:/aa/npp.npy") >>> b array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]])
如果報(bào)錯(cuò) Object arrays cannot be loaded when allow_pickle=False,需要改為如下:
np.load(path, allow_pickle=True)
2. pandas 自帶方法
to_pickle
:此方法是將 dataframe 變量數(shù)據(jù)直接存儲(chǔ)為本地文件,對(duì)于文件擴(kuò)展名沒有要求read_pickle
:此方法是將本地存儲(chǔ)的變量讀取并轉(zhuǎn)為 dataframe 文件
???<<舉例>>???
>>> import pandas as pd >>> import numpy as np >>> df = pd.DataFrame(np.arange(12).reshape(3, 4)) >>> df 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 >>> df.columns = ['I', 'II', 'III', 'IV'] >>> df I II III IV 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 >>> df.to_pickle(r"D:/aa/df") >>> dff = pd.read_pickle(r"D:/aa/df") >>> dff I II III IV 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11
3. sklearn 的自帶方法
經(jīng)測(cè)試,保存的文件大小與numpy.save()
方法一致。
???<<舉例>>???
注意:新版 sklearn 會(huì)報(bào)錯(cuò),直接 import joblib 即可
參考:(注意下面評(píng)論)cannot import name joblib from sklearn.externals(文末見)
from sklearn.externals import joblib # 保存x joblib.dump(x, 'x.pkl') # 加載x x = joblib.load('x.pkl')
新版實(shí)現(xiàn)方法
import joblib # 保存x joblib.dump(x, 'x.pkl') # 加載x x = joblib.load('x.pkl')
4. pickle 庫(kù)操作
???<<舉例>>???
import pickle # 存儲(chǔ)變量的文件的名字 filename = 'shoplist.data' # 初始化變量 shoplist = ['apple', 'mango', 'carrot'] # 以二進(jìn)制寫模式打開目標(biāo)文件 f = open(filename, 'wb') # 將變量存儲(chǔ)到目標(biāo)文件中區(qū) pickle.dump(shoplist, f) # 關(guān)閉文件 f.close() # 刪除變量 del shoplist # 以二進(jìn)制讀模式打開目標(biāo)文件 f = open(filename, 'rb') # 將文件中的變量加載到當(dāng)前工作區(qū) storedlist = pickle.load(f) print(storedlist)
cannot import name joblib from sklearn.externals
使用scikit-learn跑一個(gè)兩年前的案例, 報(bào)錯(cuò):cannot import name ‘joblib’ from ‘sklearn.externals’
原因: scikit-learn版本太新了,
解決方法一: 直接使用import joblib
感謝高贊評(píng)論的回答
解決方法二: 回退版本
刪除當(dāng)前版本的scikit-learn pip uninstall scikit-learn
安裝舊版本的scikit-learn pip install scikit-learn==0.20.3
到此這篇關(guān)于python 存儲(chǔ)變量的幾種方法的文章就介紹到這了,更多相關(guān)python 存儲(chǔ)變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)組過濾實(shí)現(xiàn)方法
這篇文章主要介紹了python數(shù)組過濾實(shí)現(xiàn)方法,涉及Python針對(duì)數(shù)組的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Django前端BootCSS實(shí)現(xiàn)分頁的方法
本文主要介紹了Django前端BootCSS實(shí)現(xiàn)分頁的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11基于Python實(shí)現(xiàn)自動(dòng)用小寫字母替換文件后綴的大寫字母
本文介紹基于Python語言,基于一個(gè)大文件夾,遍歷其中的多個(gè)子文件夾,對(duì)于每一個(gè)子文件夾中的大量文件,批量將其文件的名稱或后綴名中的字母由大寫修改為小寫的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-04-04對(duì)python實(shí)時(shí)得到鼠標(biāo)位置的示例講解
今天小編就為大家分享一篇對(duì)python實(shí)時(shí)得到鼠標(biāo)位置的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10配置jupyter notebook全步驟,更改默認(rèn)路徑,jupyter不是問題
這篇文章主要介紹了配置jupyter notebook全步驟,更改默認(rèn)路徑,jupyter不是問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Python中關(guān)鍵字nonlocal和global的聲明與解析
這篇文章主要給大家介紹了關(guān)于Python中關(guān)鍵字nonlocal和global的聲明與解析的相關(guān)資料,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03