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?內(nèi)置函數(shù)sorted()的用法
這篇文章主要介紹了Python?內(nèi)置函數(shù)sorted()的用法,文章內(nèi)容介紹詳細(xì)具有一的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-03-03
PyTorch中的C++擴(kuò)展實(shí)現(xiàn)
這篇文章主要介紹了PyTorch中的C++擴(kuò)展實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
通過(guò)Python掃描代碼關(guān)鍵字并進(jìn)行預(yù)警的實(shí)現(xiàn)方法
這篇文章主要介紹了通過(guò)Python掃描代碼關(guān)鍵字并進(jìn)行預(yù)警的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
python各層級(jí)目錄下import方法代碼實(shí)例
這篇文章主要介紹了python各層級(jí)目錄下import方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的Guido van Rossum 于1990 年代初設(shè)計(jì),作為一門叫做ABC語(yǔ)言的替代品。 Python提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊?/div> 2021-10-10
python return實(shí)現(xiàn)匯率轉(zhuǎn)換器教程示例
這篇文章主要為大家介紹了python return實(shí)現(xiàn)匯率轉(zhuǎn)換器教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python 機(jī)器學(xué)習(xí)工具包SKlearn的安裝與使用
Sklearn(全稱 SciKit-Learn),是基于 Python 語(yǔ)言的機(jī)器學(xué)習(xí)工具包。本文將簡(jiǎn)單的介紹SKlearn安裝與使用,想要入坑機(jī)器學(xué)習(xí)的同學(xué)可以參考下2021-05-05
Python StrEnum基本概念和使用場(chǎng)景分析
StrEnum是Python枚舉家族的一個(gè)強(qiáng)大補(bǔ)充,特別適合處理字符串常量,它結(jié)合了枚舉的類型安全性和字符串的靈活性,使得在許多場(chǎng)景下的編程變得更加簡(jiǎn)潔和安全,本文將介紹StrEnum的基本概念和使用場(chǎng)景,并通過(guò)示例代碼來(lái)展示它的實(shí)際應(yīng)用,感興趣的朋友跟隨小編一起看看吧2024-07-07最新評(píng)論

