Python numpy.array详解:创建、读取与操作
需积分: 50 178 浏览量
更新于2024-09-08
收藏 1.04MB PDF 举报
"numpy.array函数简介"
在Python的科学计算库Numpy中,`numpy.array`是核心的构造函数,用于创建多维数组,也被称为数组对象或 Ndarray。Ndarray 是一种高效的数据结构,它能够存储同类型的元素,包括整数、浮点数、复数甚至字符串。`numpy.array` 函数允许我们以多种方式创建数组,并提供了丰富的操作和功能。
### 创建数组
1. **基础创建**:通过列表或其他序列创建数组,如 `np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]], dtype=np.float)` 创建了一个3x4的浮点数数组。
2. **arange**:使用 `np.arange(start, stop, step)` 创建等差序列,例如 `np.arange(0, 1, 0.1)` 生成0到1(不包含1)之间,步长为0.1的数组。
3. **linspace**:`np.linspace(start, stop, num)` 创建等差序列,其中`num`是元素个数。如 `np.linspace(0, 1, 5)` 返回五个均匀间隔的点。
4. **logspace**:`np.logspace(start, stop, num)` 生成对数等比序列,如 `np.logspace(0, 1, 5)` 产生10的幂次方的等比序列。
5. **fromstring**:使用字符串创建数组,`np.fromstring(s, dtype=np.int8)` 把字符串`s`转换成整型数组。
6. **fromfunction**:`np.fromfunction(function, shape)` 根据给定的函数和形状生成数组。例如,`np.fromfunction(func2, (9, 9))` 用函数`func2`的值填充9x9的数组。
7. **ones** 和 **zeros**:`np.ones(shape)` 和 `np.zeros(shape)` 分别创建全1和全0的数组,如 `np.ones((2,2))` 和 `np.zeros((2,2))`。
### 数组属性
- **dtype**:数组元素的数据类型,如 `np.array(..., dtype=np.float)` 指定为浮点型。
- **shape**:数组的维度和大小,可以通过 `.shape` 属性访问。例如,一个3x4数组的`.shape`为 `(3, 4)`。可以通过 `.reshape(new_shape)` 改变数组的形状,但需保证元素总数不变。
### 数组操作
- **索引和切片**:数组的索引和切片操作与Python列表类似,但多维数组支持更复杂的切片,如 `arr[1:3, 2:]`。
- **布尔索引**:可以使用布尔数组或条件表达式(如 `arr > 0.5`)来选择满足条件的元素。
### 其他知识点
- **内存共享**:通过切片或方法如 `reshape` 创建的新数组与原始数组共享内存,这意味着修改其中一个会影响另一个。
- **广播机制**:当进行数组运算时,如果两个数组的形状不匹配,Numpy会尝试“广播”较小的数组以适应较大的数组,以便进行计算。
- **ufuncs**:通用函数(Uniformed Function),如加法、乘法等,可以应用于整个数组,实现高效的向量化操作。
`numpy.array` 是Numpy库的基础,它提供了一种高效的方式来存储和处理大量数据,结合其他Numpy函数和方法,可以进行复杂的数值计算和数据分析。掌握 `numpy.array` 的使用对于任何需要处理大量数据的Python程序员都是至关重要的。
15265 浏览量
9746 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情

初上花样年华
- 粉丝: 18
最新资源
- C#后端开发之Redis使用教程
- 掌握React-Resonance技术实现数据驱动UI动画渐变
- Delphi实现汉字拼音首字母提取工具源码解析
- 解决java.lang.NoClassDefFoundError: org/objenesis/ObjenesisHelper错误
- OpenSceneGraph第三方库:简易编译指南
- 深入分析PHP7内核及性能优化
- MATLAB新手教程二:控制系统的深入解析
- C语言实现图像数字水印隐藏技术介绍
- Laravel 6会话跟踪工具:多会话与设备管理
- Berrer WMF汉化版:CAD图形轻松转换
- 实现两种JS右下角消息提示的设计与测试
- VS2010环境下Bundler编译与三维重建技术
- Office卸载工具:一键清除旧版本,轻松安装新版本
- Android与PHP通过POST函数交互教学
- MeiliSearch Symfony捆绑包:Symfony项目中的搜索引擎集成
- Swift开发之SFBarrageGift:直播礼物动画效果展示