一些做机器学习过程中使用到的Python库,基于Python3.6,放在这里共同交流!
一、 numpy: 这个库的重要性不用说了,是整个Python机器学习和深度学习的基础库。另外这个库的函数主要用C实现,所以效率比较高,用来进行科学计算也是完全OK。主要提供一些数学公式,包括最小二乘、高斯函数、SVD等,同时numpy为我们封装了nparray这样一种数据结构,其实类似于C中的数组,元素长度固定且一致,这样就允许按照下表对元素进行查询;
- dot:矩阵相乘函数,效率远高于循环;
- mean(a, axis, dtype, out,keepdims):求取均值函数,a:需要求取参数的矩阵,axis:求矩阵均值的模式
axis 不设置值,对 mn 个数求均值,返回一个实数
axis = 0:压缩行,对各列求均值,返回 1 n 矩阵
axis =1 :压缩列,对各行求均值,返回 m *1 矩阵
官方文档 - multiply:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致。比如A, B为数组,MA, MB为矩阵,
则multiply(MA, MB)返回矩阵对应位置的乘积。 - power(x, y):求幂指数,和C语言pow函数用法一样, 这里返回x的y次方
- round( x, n) :返回x保留n位小数后四舍五入的结果,其中n可省略,默认为0,用法与around函数一致
二、 pandas: 主要提供与表格(Excel /csv /tsv)相关的函数,DataFrame(单列表格) / Series(单列表格);
三、 scipy: 提供一些更高级和复杂的数学函数,如Gamma(伽马函数);
四、 matplotlib.pyplot: 提供图形绘制,主要是二维图表,语法与MATLAB类似;
1. rcParams[]:[‘font.sans-serif’] = ‘SimHei’ # 设置字体
[‘axes.unicode_minus’] = ‘False’ # 设置字符是否显示
[‘line.linestyle’] = ‘-’ # 线条样式
[‘line.color’] = ‘blue’ # 线条颜色
[‘xtick.labsize’] # 横轴字体大小
[‘ytick.labsize’] # 纵轴字体大小
[‘figure.figsize’] # 图片显示大小
[’figure.dpi’] # 图片分辨率
五、 scikit-learn: 机器学习库,提供了大量机器学习相关的函数;
六、 Tensorflow: Google推出的深度学习平台,有时也会使用Keras库去写基于TensorFlow平台的代码;
1. constant:生成常数
原型: tf.constant(value=[1,2],dtype=tf.float32,shape=(1,2),name=‘testconst’, verify_shape=False)
参数说明:
value:初始值,必填,必须是一个张量(1或[1,2,3]或[[1,2,3],[2,2,3]]或…)
dtype:数据类型,选填,默认为value的数据类型,传入参数为tensorflow下的枚举值(float32,float64…)
shape:数据形状,选填,默认为value的shape,设置时不得比value小,可以比value阶数、维度更高,超过 部分按value提供最后一个数字填充
name:常量名,选填,默认值不重复,根据创建顺序为(Const,Const_1,Const_2…)
verify_shape:是否验证value的shape和指定shape相符,若设为True则进行验证,不相符时会抛出异常
import tensorflow as tf
sess = tf.InteractiveSession()
cons1 = tf.constant([1, 2, 3], shape=[2, 3])
print(sess.run(cons1))
打印结果:
[[1 2 3]
[3 3 3]]
2. matmul:矩阵相乘(完全遵循矩阵乘法,注意multiply是对应元素相乘,二者不一样)
原型:tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)
参数:
a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。
b: 一个类型跟张量a相同的张量。
transpose_a: 如果为真, a则在进行乘法计算前进行转置。
transpose_b: 如果为真, b则在进行乘法计算前进行转置。
adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。
adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。
a_is_sparse: 如果为真, a会被处理为稀疏矩阵。
b_is_sparse: 如果为真, b会被处理为稀疏矩阵。
name: 操作的名字(可选参数)