Python 语法学习
python中的日志
python中自带logger模块,实现方法一般有2种,但是比较常用的是如下
import logging
def logger():
logger = logging.getLogger()
logger.warning("输入要记录的内容")
在anaconda中安装多个python版本以及切换的方法
什么是.pyc文件,有什么作用
什么是pyc文件
pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码,由python的虚拟机来执行的,就类似于JAVA或者.NET的虚拟机的概念。pyc的内容与python的版本是相关的,不同版本编译后的pyc文件是不同的,例如2.5版本编译的是pyc文件,而2.4版本编译的python是无法执行的
为什么要pyc文件
因为py文件是可以直接看到源码的,但是一般情况下开发出来的商业软件都不可能直接把源码泄漏出去,这样我们就需要把它编译成pyc文件来保护源码。另外pyc文件也是可以反编译的,不同版本编译后的pyc文件是不一样的,这主要是根据Python源码中所提供的opcode来决定。
生成单个pyc文件
python是一门很好的语言,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块。接下来将在文中中为大家讲解如何生成单个pyc文件
import py_compile
py_compile.compile(r'H:/game/test.py')
pyc反编译
可以通过pyc反编译软件将pyc文件转换成.py文件,查看到里面的代码。
pyc反编译网站
Python中机器学习保存模型
pickle和joblib
当我们训练完一个模型的时候,需要将模型保存下来,以便后续使用。
pickle是python自带的保存模型的方法。
保存模型:
from sklearn import svm
from sklearn import datasets
import pickle
clf = svm.SVC() # 创建一个SVC模型
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X, y) # 训练模型
# 保存模型
with open('save/clf.pickle', 'wb') as f:
pickle.dump(clf,f)
加载模型:
from sklearn import svm
from sklearn import datasets
import pickle
iris = datasets.load_iris()
X, y = iris.data, iris.target
# 加载模型
with open('save/clf.pickle', 'rb') as f:
clf2 = pickle.load(f)
print(clf2.predict(X[0:1]) # 加载了模型之后就可以进行预测了 输出[0]
joblib 比pickle更快,使用了多线程并行处理。
保存模型
import joblib
clf = svm.SVC()
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X, y)
joblib.dump(clf, 'save/clf.pkl')
加载模型
import joblib
clf3 = joblib.load('save/clf.pkl')
print(clf3.predict(X[0:1])) # 输出[0]
np.where()使用方法
- np.where(condition,x,y) 当where内有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时where返回y
- np.where(condition) 当where内只有一个参数时,那个参数表示条件,当条件成立时,where返回的是每个符合condition条件元素的坐标,返回的是以元组的形式