python科学计算和数据科学应用(猿创征文|【Python数据科学快速入门系列 | 05】常用科学计算函数)
这是机器未来的第44篇文章
原文首发地址:https://blog.csdn.net/RobotFutures/article/details/126615267
1. 概述
本文以鸢尾花的数据预处理为例 ,描述了科学计算在机器学习使用的示例 。
2. 加载数据集
以鸢尾花数据集为例 。
鸢尾花数据集有4个特征 ,1个标签 ,特征为sepal_length,sepal_width,petal_length,petal_width ,分别为花萼长度 、花萼宽度 ,花瓣长度 、花瓣宽度 ,标签为鸢尾花的分类 ,0,1,2分别代表山鸢尾(Setosa) 、变色鸢尾(Versicolor) 、维吉尼亚鸢尾(Virginical) import numpy as np data = [] with open(file=iris.txt,mode=r) as f: f.readline() while True: line = f.readline() if line: data.append(line.strip().split(,)) else: break data = np.array(data,dtype=float) # 使用切片提取前4列数据作为特征数据 X_data = data[:, :4] # 或者 X_data = data[:, :-1] # 使用切片提取最后1列数据作为标签数据 y_data = data[:, -1] data.shape, X_data.shape, y_data.shape ((150, 5), (150, 4), (150,))3. 查看数据特征
3.1 查看首5行数据
X_data[0:5], y_data[0:5] (array([[5.1, 3.5, 1.4, 0.2], [4.9, 3. , 1.4, 0.2], [4.7, 3.2, 1.3, 0.2], [4.6, 3.1, 1.5, 0.2], [5. , 3.6, 1.4, 0.2]]), array([0., 0., 0., 0., 0.]))3.2 查看数据集每个特征的最大值
# axis = 0指定X轴 ,取每列的最大值 np.max(X_data, axis=0) array([7.9, 4.4, 6.9, 2.5])上面的取值就是每个特征的最大值 ,数据集的花萼长度最大值为7.9 ,花萼宽度最大值为4.4 ,花瓣长度最大值为6.9 ,花瓣宽度最大值为2.5
如果去掉轴axis参数,就是取数据集所有数据中的最大值 ,会综合所有列一起的最大值 。
np.max(X_data) 7.93.3 查看每个特征的最小值
np.min(X_data, axis=0) array([4.3, 2. , 1. , 0.1])上面的取值就是每个特征的最小值 ,数据集的花萼长度最小值为4.3,花萼宽度最小值为2 ,花瓣长度最小值为1 ,花瓣宽度最小值为0.1
3.4 查看特征均值
np.mean(X_data, axis=0) array([5.84333333, 3.05733333, 3.758 , 1.19933333])3.5 查看特征百分位数
百分位数是统计中使用的度量 ,表示小于这个值的观察值样本数量占总体的百分比 。
# 25% np.percentile(X_data, 0.25, axis=0) array([4.33725, 2.0745 , 1.03725, 0.1 ]) # 50% np.percentile(X_data, 0.50, axis=0) array([4.3745, 2.149 , 1.0745, 0.1 ]) # 75% np.percentile(X_data, 0.75, axis=0) array([4.4 , 2.2 , 1.11175, 0.1 ])3.6 查看特征数据分布波动
np.std(X_data, axis=0) array([0.82530129, 0.43441097, 1.75940407, 0.75969263])从标准差可以看到特征花萼宽度标准差为0.43441097数据波动最小 ,花瓣长度标准差数据为1.75940407 ,数据波动最大 。
3.8 查看特征样本数量
X_data.shape (150, 4)可以看到样本数量为150 ,每个样本4个特征
3.9 查看标签数据分布
通过np.unique分别获得唯一ID和对应的样本数量 ,然后通过zip 、dict转换为字典 。
unique, count = np.unique(y_data, return_counts=True) label_count = dict(zip(unique, count)) label_count {0.0: 50, 1.0: 50, 2.0: 50}可以看到标签是均衡的 ,每个分类的样本数均是50.
4. 其它常用的科学函数
函数 说明 示例 np.sum 求累加 np.sum((y_pred - y_data)**2) np.exp 以自然常数e为底的指数函数 np.exp**2 np.var 求方差 np.var(X_data, axis=0) np.round 四舍五入 np.round(np.var(X_data, axis=0), decimals=2) np.square 求平方 np.square(X_data) np.abs 求绝对值 np.abs([1, -1, -7.9, 6]) np.argmax 求最大值的位置索引 np.argmax(X_data, axis=0) np.argmin 求最小值的位置索引 np.argmin(X_data, axis=0) …5. 总结
以上就是numpy科学函数的简单介绍 ,更多api在将来的使用中再描述 。
写在末尾:
博客简介:专注AIoT领域 ,追逐未来时代的脉搏 ,记录路途中的技术成长! 专栏简介:从0到1掌握数据科学常用库Numpy 、Matploblib 、Pandas 。 面向人群:AI初级学习者 专栏计划:接下来会逐步发布跨入人工智能的系列博文 ,敬请期待 Python零基础快速入门系列 Python数据科学系列 人工智能开发环境搭建系列 机器学习系列 物体检测快速入门系列 自动驾驶物体检测系列 …创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!