Numpy入门:实战演示简单用法与操作
27 浏览量
更新于2024-08-31
收藏 54KB PDF 举报
Numpy是一个强大的Python库,专为科学计算和数据分析设计,其核心是NumPy数组(ndarray),它提供了高效、内存优化的多维数组操作。本文将详细介绍Numpy的简单用法,帮助读者理解和掌握这个工具在编程中的应用。
首先,我们来了解如何创建`ndarray`对象。Numpy提供了多种方式创建数组:
1. **列表转换**:可以使用`np.array()`函数将列表转换为ndarray。例如,列表`[1,2,3,4,5]`转换为:
```
>>> a = [1,2,3,4,5]
>>> np.array(a)
array([1,2,3,4,5])
```
2. **随机数生成**:`np.random.rand()`用于生成指定形状的随机浮点数,如3x4的随机数组:
```
>>> np.random.rand(3,4)
array([[0.16215336, 0.49847764, 0.36217369, 0.6678112 ],
[0.66729648, 0.86538771, 0.32621889, 0.07709784],
[0.05460976, 0.3446629 , 0.35589223, 0.3716221 ]])
```
`np.random.randint()`则生成指定范围内的随机整数:
```
>>> np.random.randint(1,5,size=(3,4))
array([[2,3,1,2],
[3,4,4,4],
[4,4,4,3]])
```
3. **数值初始化**:`np.zeros()`生成全零数组,`np.ones()`生成全一数组,`np.empty()`创建具有未知初始值的数组,但请注意`np.empty()`的行为可能因版本不同而异,不推荐使用。还有针对整数的版本:
```
>>> np.zeros((3,4), int)
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
>>> np.ones((3,4), int)
array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])
```
4. **仿射范围**:`np.arange()`用于生成等差数列,如从2到10,步长为2的数组:
```
>>> np.arange(2, 10, 2)
array([2, 4, 6, 8])
```
接着,我们探讨ndarray的属性查看和操作。使用`ndim`属性获取数组维度,`shape`属性查看数组的形状,以及基本的元素访问和修改:
```
>>> a = [[1,2,3,4,5],[6,7,8,9,0]]
>>> b = np.array(a)
>>> b.ndim # 查看维度
2
>>> b.shape # 查看形状 (2, 5)
# 操作示例
>>> c = b[0] # 提取第一行
>>> c
array([1, 2, 3, 4, 5])
# 修改元素
>>> b[1, 0] = 100
>>> b
array([[ 1, 2, 3, 4, 5],
[100, 7, 8, 9, 0]])
```
以上只是Numpy基本用法的一部分,Numpy还提供了丰富的数学函数、线性代数操作、统计分析等功能,这些都是数据处理和科学计算的强大工具。通过深入学习和实践,你可以将Numpy融入到各种数据处理任务中,提升代码效率和可读性。
点击了解资源详情
点击了解资源详情
221 浏览量
2129 浏览量
639 浏览量
109 浏览量
122 浏览量
412 浏览量
6366 浏览量

weixin_38634037
- 粉丝: 7
最新资源
- J2EE培训:企业级软件开发深度解析
- 探索Ruby编程语言:资源、进阶与社区指南
- Symbian:移动办公的微核操作系统研究与环境配置详解
- 互联网搜索引擎:原理、技术与系统详解
- JSP+Tomcat基础配置与环境搭建详解
- CoreJava基础教程:从入门到精通
- 构建机票预定系统:需求与服务器功能分析
- Linux内核0.11完全解析
- 掌握数据流图绘制关键:基本符号与应用实例
- Struts1.2深度解析:核心标签库与架构详解
- Struts框架详解:构建高效Web应用
- UML使用案例驱动的对象建模:理论与实践
- Matlab实现的差分2DPSK调制解调系统仿真设计
- 2008版《Illustrated C#》:精通.NET框架与C#编程全览
- JBPM工作流开发实战指南
- C++Builder6实战指南:从基础到高级技术探索