轻松掌握NumPy-从零开始 (轻松掌握哪些高新技术英语)
NumPy(Numerical Python)是一个强大的Python库,用于科学计算。它提供了多维数组对象,以及一系列用于处理这些数组的工具。NumPy是许多其他Python科学计算库的基础,因此掌握NumPy对于数据分析、机器学习和科学计算至关重要。
NumPy数组
NumPy的核心是ndarray(n-dimensional array)对象,它是一个多维数组。它与Python中的列表类似,但NumPy数组可以存储和处理大量数据,并且执行效率更高。NumPy数组可以是一维的、二维的、三维的,甚至可以是更高维度的。使用NumPy数组,我们可以进行向量化操作,即对整个数组执行操作,而不需要使用显式的循环。
创建NumPy数组
-
使用
numpy.array()
函数从Python列表或元组创建:
import numpy as np
arr = np.array([1, 2, 3])
numpy.zeros()
、
numpy.ones()
和
numpy.empty()
函数创建具有特定形状和初始值的数组:
arr =np.zeros((3, 4)) 创建一个3行4列的全零数组
arr = np.ones((3, 4)) 创建一个3行4列的全一数组
arr = np.empty((3, 4)) 创建一个3行4列的空数组,元素值未初始化
numpy.arange()
和
numpy.linspace()
函数创建数字序列的数组:
arr = np.arange(10) 创建一个包含0到9的数组
arr = np.linspace(0, 1, 10) 创建一个包含0到1之间10个均匀间隔数字的数组
数组属性
-
形状(
shape
):表示每个维度大小的元组。 -
维度(
dimension
):数组轴的数量。 -
大小(
size
):数组中元素的总数。 -
数据类型(
dtype
):数组中元素的类型(例如整数、浮点数等)。
数组索引和切片
- 使用索引从0开始访问元素。
- 可以使用负数索引从数组末尾开始计数。
- 切片操作允许选择数组的子集。
数组操作
NumPy提供了许多函数和方法来操作数组,包括:
- 数学运算(例如加、减、乘、除)。
- 统计操作(例如求和、求平均值、求最大值)。
- 排序操作。
- 重塑操作(更改数组的形状)。
数组之间的运算可以使用元素级运算或矩阵运算。NumPy还提供了广播机制,使不同形状的数组之间可以执行运算。
聚合操作
NumPy提供了聚合函数,用于计算数组的总和、平均值、最大值、最小值等。可以使用
numpy.sum()
、
numpy.mean()
、
numpy.max()
等函数进行这些操作。聚合函数可以沿特定轴操作(例如沿着行或列)。
形状操作
-
使用
numpy.reshape()
函数更改数组的形状。 -
使用
numpy.transpose()
函数进行转置操作。 -
使用
numpy.concatenate()
和numpy.split()
函数进行数组的拼接和分割。
文件操作
NumPy可以读取和写入磁盘上的数据文件,例如文本文件和二进制文件。可以使用
numpy.loadtxt()
和
numpy.savetxt()
函数读写文本文件。可以使用
numpy.load()
和
numpy.save()
函数读写二进制文件。
随机数生成
NumPy内置了一个强大的随机数生成模块(
numpy.random
),可以生成各种概率分布的随机数,例如均匀分布、正态分布和泊松分布。随机数生成模块还提供了随机抽样函数和随机数种子控制。
线性代数运算
NumPy提供了线性代数运算的函数,例如矩阵乘法、求逆和计算特征值。可以使用
numpy.dot()
函数进行矩阵乘法,
numpy.linalg.inv()
函数求矩阵的逆,
numpy.linalg.eig()
函数计算矩阵的特征值和特征向量。
结语
本文介绍了NumPy库的主要概念和功能,包括NumPy数组、数组操作、聚合操作、形状操作、文件操作、随机数生成和线性代数运算。通过深入学习这些内容,你将能够在数据科学和科学计算领域熟练地使用NumPy库。
请在实践中多加练习,逐步掌握NumPy的各种功能和技巧,成为数据科学和科学计算领域的专家。
菜鸟数据科学入门03 - NumPy 数组基础和基本操作
回顾:NumPy是一个用于科学计算的基础 Python 库( 安装说明 )。 它可以让你在 Python 中使用向量和数学矩阵,以及许多用 C 语言实现的底层函数。 在 Notebook 中导入 NumPy: 数组是将数据组织成若干个维度的数据块。 NumPy 的核心是数组(arrays)。 用array创建数组 在 NumPy 数组中,数据类型需要一致,否则,会尝试「向上兼容」,比如生成一个包含浮点数的数组,输出时每个元素都变成了浮点型: NumPy 还可以用循环生成数组: 用full生成一个 3 行 5 列的数组: 用arange等距填充数组: (arange 是 Python 内置函数 range 的数组版,返回的是一个 ndarray 而不是 list) 用linspace线性填充数组: 用random生成随机数组: btw 数组索引从 0 开始 NumPy 中的切片语法: x[start:stop:step] ,如果没有赋值,默认值 start=0, stop=size of dimension, step=1。 (上图最后一个图形,arr[1, :2] 应该是(1,2) 一行二列矩阵??) 复制数组切片 reshape: 转置(transpose)是重塑(reshape)的一种特殊形式,返回源数据的视图而不进行复制。 用 concatenate 连接数组: 用 vstack 合并到数据行,hstack合并到数据列 拆分数组的函数包括 , , 传递给数组一个与它有关的条件式,然后它就会返回给定条件下为真的值。 在生成图形时也非常好用: 在程序中用条件式选择了图中不同的点。 蓝色的点(也包含图中的绿点,只是绿点覆盖了蓝点),显示的是值大于零的点。 绿点显示的是值大于 0 小于 Pi / 2 的点。 当不同 shape 的数组进行运算(按位加/按位减的运算,而不是矩阵乘法的运算)时,(某个维度上)小的数组就会沿着(同一维度上)大的数组自动填充。 广播虽然是一个不错的偷懒办法,但是效率不高、降低运算速度通常也为人诟病。 广播的原理(viaBroadcast Visualization ):
零基础学Python需要从哪里开始?
分享Python学习路线:
第一阶段:Python基础与Linux数据库
这是Python的入门阶段,也是帮助零基础学员打好基础的重要阶段。你需要掌握Python基本语法规则及变量、逻辑控制、内置数据结构、文件操作、高级函数、模块、常用标准库模板、函数、异常处理、mysql使用、协程等知识点。
学习目标:掌握Python的基本语法,具备基础的编程能力;掌握Linux基本操作命令,掌握MySQL进阶内容,完成银行自动提款机系统实战、英汉词典、歌词解析器等项目。
第二阶段:web全栈
这一部分主要学习web前端相关技术,你需要掌握html、cssJavaScript、JQuery、Bootstrap、web开发基础、Vue、FIask Views、FIask模板、数据库操作、FIask配置等知识。
学习目标:掌握web前端技术内容,掌握web后端框架,熟练使用FIask、Tornado、Django,可以完成数据监控后台的项目。
第三阶段:数据分析+人工智能
这部分主要是学习爬虫相关的知识点,你需要掌握数据抓取、数据提取、数据存储、爬虫并发、动态网页抓取、scrapy框架、分布式爬虫、爬虫攻防、数据结构、算法等知识。
学习目标:可以掌握爬虫、数据采集,数据机构与算法进阶和人工智能技术。可以完成爬虫攻防、图片马赛克、电影推荐系统、地震预测、人工智能项目等阶段项目。
第四阶段:高级进阶
这是Python高级知识点,你需要学习项目开发流程、部署、高并发、性能调优、Go语言基础、区块链入门等内容。
学习目标:可以掌握自动化运维与区块链开发技术,可以完成自动化运维项目、区块链等项目。
按照上面的Python学习路线图学习完后,你基本上就可以成为一名合格的Python开发工程师。当然,想要快速成为企业竞聘的精英人才,你需要有好的老师指导,还要有较多的项目积累实战经验。
对于Python开发有兴趣的小伙伴们,不妨先从看看Python开发教程开始入门!B站搜索尚学堂官方号,Python教学视频,从基础到高级的都有,还挺不错的,知识点讲得很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。