Anaconda + NumPy + Pandas + Matplotlib 实战入门:Python 数据科学从入门到精通,助你成为数据大神!

发布时间:2026/5/22 0:04:30

Anaconda + NumPy + Pandas + Matplotlib 实战入门:Python 数据科学从入门到精通,助你成为数据大神! 本文详细介绍了 Anaconda、NumPy、Pandas 和 Matplotlib 这四个 Python 数据科学核心库。内容涵盖了 Anaconda 的安装与使用NumPy 的数组操作、常用函数和矩阵乘法Pandas 的 Series 和 DataFrame 创建、常用属性与方法以及数据的导入导出。最后文章还介绍了 Matplotlib 和 Seaborn 的可视化功能帮助你更好地展示数据分析结果。通过学习本文你将掌握 Python 数据科学的基本技能为后续深入学习打下坚实基础。AnacondaAnaconda 官网地址https://www.anaconda.com/Anaconda Python 包和环境管理器Conda 常用库 集成工具。Numpynumpy 是 Python 中科学计算的基础包。它是一个包含 ndarray 和所有操作它的函数 / 工具的完整 Python 库提供多维数组对象、各种派生对象例如掩码数组和矩阵以及用于对数组进行快速操作的各种方法包括数学、逻辑、形状操作、排序、选择、I/O 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。1、array()、asarray()array()****将输入数据转换为 ndarray会进行 copy。asarray()****将输入数据转换为 ndarray如果输入本身是 ndarray 则不会进行 copy。2、zeros()、ones()、empty()与 zeros_like()、ones_like()、empty_like()zeros()返回给定形状和类型的新数组用 0 填充。ones()返回给定形状和类型的新数组用 1 填充。empty()返回给定形状和类型的未初始化的新数组。zeros_like()返回与给定数组具有相同形状和类型的 0 新数组。ones_like()返回与给定数组具有相同形状和类型的 1 新数组。empty_like()返回与给定数组具有相同形状和类型的未初始化的新数组。3、full()、 full_like()full()返回给定形状和类型的新数组用指定的值填充。full_like()返回与给定数组具有相同形状和类型的用指定值填充的新数组。4、arange()arange()返回在给定范围内用均匀间隔的值填充的一维数组。5、linspace()、logspace()linspace()返回指定范围和元素个数的等差数列。数组元素类型为浮点型。logspace()返回指定指数范围、元素个数、底数的等比数列。6、创建随机数数组random.rand()返回给定形状的数组用 [0, 1) 上均匀分布的随机样本填充。random.randint()返回给定形状的数组用从低位(包含)到高位(不包含)上均匀分布的随机整数填充。random.uniform()返回给定形状的数组用从低位(包含)到高位(不包含)上均匀分布的随机浮点数填充。random.randn()返回给定形状的数组用标准正态分布(均值为 0标准差为 1)的随机样本填充。7、matrix()matrix 为 ndarray 的子类只能生成二维的矩阵。8、ndarray 切片和索引import numpy as nparr np.arange(10)print(arr)[0 1 2 3 4 5 6 7 8 9]#获取索引为 2 的数据print(arr[2])2# 从索引 2 开始到索引 9(不包含)停止间隔为 2print(arr[slice(2,9,2)])[2 4 6 8]# 从索引 2 开始到索引 9(不包含)停止间隔为 2print(arr[2:9:2])[2 4 6 8]# 从索引 2 开始到最后(不包含)默认间隔为 1print(arr[2:])[2 3 4 5 6 7 8 9]# 从索引 2 开始到索引 9(不包含)结束默认间隔为 1print(arr[2:9])[2 3 4 5 6 7 8]9、numpy 常用函数基本函数函数说明np.abs()元素的绝对值参数是 number 或 arraynp.ceil()向上取整参数是 number 或 arraynp.floor()向下取整参数是 number 或 arraynp.rint()四舍五入参数是 number 或 array 四舍六入当需要舍入的数字小于 5 时直接舍去当需要舍入的数字大于 5 时进位。 五成双当需要舍入的数字恰好是 5 时会看 5 前面的数字如果是偶数则直接舍去 5如果是奇数则进位。np.isnan()判断元素是否为 NaN(Not a Number)参数是 number 或 arraynp.multiply()元素相乘参数是 number 或 array。如果第二个参数传递的是 number原数组中所有元素乘以这个数字返回新的数组如果第二个参数也是一个数组是将两个数组中对应位置的元素相乘返回一个新的数组其形状与输入数组相同。np.divide()元素相除参数是 number 或 arraynp.where(condition, x, y)三元运算符x if condition else y统计函数函数说明np.mean()所有元素的平均值np.sum()所有元素的和np.max()所有元素的最大值np.min()所有元素的最小值np.std()所有元素的标准差np.var()所有元素的方差np.argmax()最大值的下标索引值np.argmin()最小值的下标索引值np.cumsum()返回一个一维数组每个元素都是之前所有元素的累加和np.cumprod()返回一个一维数组每个元素都是之前所有元素的累乘积比较函数函数说明np.any()至少有一个元素满足指定条件就返回 Truenp.all()所有的元素都满足指定条件才返回 True排序函数ndarray.sort()****就地排序直接修改原数组np.sort()****返回排序后的副本创建新的数组去重函数np.unique()****计算唯一值并返回有序结果。10、矩阵乘法通过*运算符和 np.multiply()对两个数组相乘进行的是对位乘法而非矩阵乘法运算arr1 np.array([[1, 2, 3], [4, 5, 6]])arr2 np.array([[6, 5, 4], [3, 2, 1]])print(arr1 * arr2)[[ 6 10 12] [12 10 6]]print(np.multiply(arr1, arr2))[[ 6 10 12] [12 10 6]]使用 np.dot()、ndarray.dot()、可以进行矩阵乘法运算arr1 np.array([[1, 2, 3], [4, 5, 6]])arr2 np.array([[6, 5], [4, 3], [2, 1]])#对于矩阵乘法来说要求第一个矩阵的列数等于第二个矩阵的行数#结果矩阵第一行第一列1*6 2*4 3*2 20#结果矩阵第一行第二列1*5 2*3 3*1 14#结果矩阵第二行第一列4*6 5*4 6*2 56#结果矩阵第二行第二列4*5 5*3 6*1 41print(np.dot(arr1, arr2))[[20 14] [56 41]]print(arr1.dot(arr2))[[20 14] [56 41]]print(arr1 arr2)[[20 14] [56 41]]# 一个二维数组跟一个大小合适的一维数组的矩阵点积运算之后将会得到一个一维数组arr3 np.array([6, 5, 4])print(arr1 arr3)[28 73]PandasPandas 是一个开源的数据分析和数据处理库它是基于 Python 编程语言的。用得最多的 pandas 对象是 Series一个一维的标签化数组对象另一个是 DataFrame它是一个面向列的二维表结构。Series1、创建通过列表创建seriespd.Series([4, 7, -5, 3])通过列表创建 Series 时指定索引pd.Series([4, 7, -5, 3], index[“a”, “b”, “c”, “d”])通过列表创建 Series 时指定索引和名称pd.Series([4, 7, -5, 3], index[“a”, “b”, “c”, “d”],name“hello_python”)通过字典创建 Seriespd.Series({“a”: 4, “b”: 7, “c”: -5, “d”: 3})2、Series 的常用属性属性说明indexSeries 的索引对象valuesSeries 的值ndimSeries 的维度shapeSeries 的形状sizeSeries 的元素个数dtype 或 dtypesSeries 的元素类型nameSeries 的名称loc[]显式索引按标签索引或切片iloc[]隐式索引按位置索引或切片at[]使用标签访问单个元素iat[]使用位置访问单个元素3、Series 的常用方法方法说明head()查看前 n 行数据默认 5 行tail()查看后 n 行数据默认 5 行isin()元素是否包含在参数集合中isna()元素是否为缺失值通常为 NaN 或 Nonesum()求和会忽略 Series 中的缺失值mean()平均值min()最小值max()最大值var()方差std()标准差median()中位数mode()众数出现频率最高的值如果有多个值出现的频率相同且都是最高频率这些值都会被包含在返回的 Series 中quantile(q, interpolation)指定位置的分位数 q 的取值范围是 0 到 1 之间的浮点数或浮点数列表如 quantile(0.5) 表示计算中位数即第 50 百分位数 interpolation指定在计算分位数时如果分位数位置不在数据点上采用的插值方法。默认值是线性插值 ‘linear’还有其他 可选值如 ‘lower’、‘higher’、‘midpoint’、‘nearest’ 等describe()常见统计信息value_count()每个元素的个数count()非缺失值元素的个数如果要包含缺失值用 len()drop_duplicates()去重unique()去重后的数组nunique()去重后元素个数sample()随机采样sort_index()按索引排序sort_values()按值排序replace()用指定值代替原有值to_frame()将 Series 转换为 DataFrameequals()判断两个 Series 是否相同keys()返回 Series 的索引对象corr()计算与另一个 Series 的相关系数 默认使用皮尔逊相关系数Pearson correlation coefficient来计算相关性。要求参与比较的数组元素类型都是数值型。 当相关系数为 1 时表示两个变量完全正相关即一个变量增加另一个变量也随之增加。 当相关系数为 -1 时表示两个变量完全负相关即一个变量增加另一个变量随之减少。 当相关系数为 0 时表示两个变量之间不存在线性相关性。 例如分析某地区的气温和冰淇淋销量之间的关系cov()计算与另一个 Series 的协方差hist()绘制直方图用于展示数据的分布情况。它将数据划分为若干个区间也称为“bins”并统计每个区间内数据的频数。 需要安装 matplotlib 包items()获取索引名以及值DataFrame1、创建通过字典创建 DataFramepd.DataFrame({“id”: [101, 102, 103], “name”: [“张三”, “李四”, “王五”], “age”: [20, 30, 40]})通过字典创建时指定列的顺序和行索引pd.DataFrame(data{“age”: [20, 30, 40], “name”: [“张三”, “李四”, “王五”]}, columns[“name”, “age”], index[101, 102, 103]2、DataFrame 的常用属性属性说明indexDataFrame 的行索引columnsDataFrame 的列标签valuesDataFrame 的值ndimDataFrame 的维度shapeDataFrame 的形状sizeDataFrame 的元素个数dtypesDataFrame 的元素类型T行列转置loc[]显式索引按行列标签索引或切片iloc[]隐式索引按行列位置索引或切片at[]使用行列标签访问单个元素iat[]使用行列位置访问单个元素3、DataFrame 的常用方法方法说明head()查看前 n 行数据默认 5 行tail()查看后 n 行数据默认 5 行isin()元素是否包含在参数集合中isna()元素是否为缺失值sum()求和mean()平均值min()最小值max()最大值var()方差std()标准差median()中位数mode()众数quantile()指定位置的分位数如 quantile(0.5)describe()常见统计信息info()基本信息value_counts()每个元素的个数count()非空元素的个数drop_duplicates()去重sample()随机采样replace()用指定值代替原有值equals()判断两个 DataFrame 是否相同cummax()累计最大值cummin()累计最小值cumsum()累计和cumprod()累计积diff()一阶差分对序列中的元素进行差分运算也就是用当前元素减去前一个元素得到差值默认情况下它会计算一阶差分即相邻元素之间的差值。参数 periods整数默认为 1。表示要向前或向后移动的周期数用于计算差值。正数表示向前移动负数表示向后移动。 axis指定计算的轴方向。0 或 ‘index’ 表示按列计算1 或 ‘columns’ 表示按行计算默认值为 0。sort_index()按行索引排序sort_values()按某列的值排序可传入列表来按多列排序并通过 ascending 参数设置升序或降序nlargest()返回某列最大的 n 条数据nsmallest()返回某列最小的 n 条数据4、DataFrame 数据的导入与导出导出数据方法说明to_csv()将数据保存为 csv 格式文件数据之间以逗号分隔可通过 sep参数设置使用其他分隔符可通过 index 参数设置是否保存行标签可通过 header 参数设置是否保存列标签to_pickle()如要保存的对象是计算的中间结果或者保存的对象以后会在 Python 中复用可把对象保存为 .pickle 文件。如果保存成 pickle 文件只能在 python 中使用。文件的扩展名可以是 .p、.pkl、.pickle。to_excel()保存为 Excel 文件需安装 openpyxl 包。to_clipboard()保存到剪切板。to_dict()保存为字典。to_hdf()保存为 HDF 格式需安装 tables 包。to_html()保存为 HTML 格式需安装 lxml、html5lib、beautifulsoup4 包。to_json()保存为 JSON 格式。to_feather()feather 是一种文件格式用于存储二进制对象。feather 对象也可以加载到 R 语言中使用。feather 格式的主要优点是在 Python 和 R 语言之间的读写速度要比 csv 文件快。feather 数据格式通常只用中间数据格式用于 Python 和 R 之间传递数据一般不用做保存最终数据。需安装 pyarrow 包。to_sql()保存到数据库。导入数据方法说明read_csv()加载 csv 格式的数据。可通过 sep 参数指定分隔符可通过 index_col 参数指定行索引。read_pickle()加载 pickle 格式的数据。read_excel()加载 Excel 格式的数据。read_clipboard()加载剪切板中的数据。read_hdf()加载 HDF 格式的数据。read_html()加载 HTML 格式的数据。read_json()加载 JSON 格式的数据。read_feather()加载 feather 格式的数据。read_sql()加载数据库中的数据。Padas 的数据组合函数**concat 连接**沿着一条轴将多个对象堆叠到一起可通过 axis 参数设置沿哪一条轴连接。**merge 合并**通过一个或多个列将行连接。Padas 的缺失值处理函数pandas 使用浮点值 NaNNot a Number表示缺失数据使用 NANot Available表示缺失值。可以通过 isnull()、isna()或 notnull()、notna()方法判断某个值是否为缺失值。Padas 的 apply 函数apply()函数可以对 DataFrame 或 Series 的数据进行逐行、逐列或逐元素的操作。可以使用自定义函数对数据进行变换、计算或处理通常用于处理复杂的变换逻辑或者处理不能通过向量化操作轻松完成的任务。Pandas 透视表pandas 中提供了 DataFrame.pivot_table()和 pandas.pivot_table()方法来生成透视表。两者的区别是 pandas.pivot_table()需要额外传入一个 data 参数指定对哪个 DataFrame 进行处理。pivot_table()的参数如下参数说明values待聚合的列默认聚合所有数值列。index用作透视表行索引的列。即通过哪个些行来对数据进行分组行索引决定了透视表的行维度columns用作透视表列索引的列。即通过哪个些列来对数据进行分组。组列索引决定了透视表的列维度。aggfunc聚合函数或函数列表默认为 mean。fill_value用于替换结果表中的缺失值。margins是否在透视表的边缘添加汇总行和列显示总计。默认值是 False如果设置为 True会添加 “总计” 行和列方便查看数据的总体汇总。dropna是否排除包含缺失值的行和列。默认为 True即如果某个组合的行列数据中包含缺失值则会被排除在外。如果设置为 False则会保留这些含有缺失值的行和列。observed是否显示所有组合数据True: 只显示实际存在的组合Matplotlib可视化Matplotlib 是一个 Python 绘图库广泛用于创建各种类型的静态、动态和交互式图表。它是数据科学、机器学习、工程和科学计算领域中常用的绘图工具之一。➢ 支持多种图表类型折线图Line plots、散点图Scatter plots、柱状图Bar charts、直方图Histograms、饼图Pie charts、热图Heatmaps、箱型图Box plots、极坐标图Polar plots、3D 图3D plots配合 mpl_toolkits.mplot3d。➢ 高度自定义允许用户自定义图表的每个部分包括标题、轴标签、刻度、图例等。 支持多种颜色、字体和线条样式。提供精确的图形渲染控制如坐标轴范围、图形大小、字体大小等。➢ 兼容性与 NumPy、Pandas 等库紧密集成特别适用于绘制基于数据框和数组的数据可视化。可以输出到多种格式如 PNG、PDF、SVG、EPS 等。➢ 交互式绘图在 Jupyter Notebook 中Matplotlib 支持交互式绘图可以动态更新图表。支持图形缩放、平移等交互操作。➢ 动态图表可以生成动画使用 FuncAnimation 类为用户提供动态数据的可视化。Pandas 可视化pandas 提供了非常方便的绘图功能可以直接在 DataFrame 或 Series 上调用 plot()方法来生成各种类型的图表。底层实现依赖于 Matplotlibpandas 的绘图功能集成了许多常见的图形类型易于使用。Seaborn 可视化Seaborn 是一个基于 Matplotlib 的 Python 可视化库旨在简化数据可视化的过程。它提供了更高级的接口用于生成漂亮和复杂的统计图表同时也能保持与 Pandas 数据结构的良好兼容性。说真的这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis稳稳当当过日子。结果GPT、DeepSeek火了之后整条线上的人都开始有点慌了大家都在想“我是不是要学大模型不然这饭碗还能保多久”我先给出最直接的答案一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇这绝非空谈。数据说话2025年的最后一个月脉脉高聘发布了《2025年度人才迁徙报告》披露了2025年前10个月的招聘市场现状。AI领域的人才需求呈现出极为迫切的“井喷”态势2025年前10个月新发AI岗位量同比增长543%9月单月同比增幅超11倍。同时在薪资方面AI领域也显著领先。其中月薪排名前20的高薪岗位平均月薪均超过6万元而这些席位大部分被AI研发岗占据。与此相对应市场为AI人才支付了显著的溢价算法工程师中专攻AIGC方向的岗位平均薪资较普通算法工程师高出近18%产品经理岗位中AI方向的产品经理薪资也领先约20%。当你意识到“技术AI”是个人突围的最佳路径时整个就业市场的数据也印证了同一个事实AI大模型正成为高薪机会的最大源头。最后我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我整理出这套 AI 大模型突围资料包【允许白嫖】✅从入门到精通的全套视频教程✅AI大模型学习路线图0基础到项目实战仅需90天✅大模型书籍与技术文档PDF✅各大厂大模型面试题目详解✅640套AI大模型报告合集✅大模型入门实战训练这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】①从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图0基础到项目实战仅需90天全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤640套AI大模型报告合集⑥大模型入门实战训练获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】

相关新闻