Numpy数组操作详解:创建、属性与索引
31 浏览量
更新于2024-08-31
收藏 92KB PDF 举报
"Numpy数组操作"
在Python科学计算领域,Numpy库是不可或缺的一部分,它提供了高效的多维数组对象,以及一系列用于处理这些数组的方法。Numpy数组,也称为ndarray,是Numpy的核心数据结构,具有许多特性使其在处理大量数据时效率极高。以下是对Numpy数组操作的详细说明:
**Numpy数组的创建**
1. **numpy.array方法**:这是最基础的创建数组的方式,可以接受列表、元组或其他序列作为输入,生成数组。例如:
```python
import numpy as np
array_1 = np.array([1, 4, 2, 5, 3])
```
如果输入的数据类型不一致,Numpy会自动进行类型提升。
2. **numpy.zeros方法**:生成指定形状的全零数组。
```python
array_zeros = np.zeros((3, 4)) # 创建一个3x4的全零二维数组
```
3. **numpy.ones方法**:生成指定形状的全一数组。
```python
array_ones = np.ones((2, 3)) # 创建一个2x3的全一二维数组
```
4. **numpy.full方法**:生成指定形状的数组,所有元素都填充给定的值。
```python
array_full = np.full((2, 3), 7) # 创建一个2x3的二维数组,所有元素为7
```
5. **numpy.arange方法**:创建一个等差数列数组。
```python
array_range = np.arange(10) # 创建一个从0到9的一维数组
```
6. **numpy.linspace方法**:在指定范围内生成等间距的数组。
```python
array_linspace = np.linspace(0, 1, 5) # 创建一个从0到1的等差数组,包含5个元素
```
7. **numpy.random.random方法**:生成指定形状的随机浮点数数组,取值范围在0到1之间。
```python
array_random = np.random.random((3, 2)) # 创建一个3x2的随机浮点数二维数组
```
8. **numpy.random.randint方法**:生成指定范围内的整数数组。
```python
array_randint = np.random.randint(1, 10, (2, 3)) # 创建一个2x3的二维数组,元素为1到9的整数
```
9. **numpy.random.normal方法**:生成符合正态分布的随机数组。
```python
array_normal = np.random.normal(0, 1, (3, 4)) # 创建一个3x4的二维数组,元素为均值0,标准差1的正态分布随机数
```
10. **numpy.eye方法**:生成单位矩阵。
```python
identity_matrix = np.eye(3) # 创建一个3x3的单位矩阵
```
11. **numpy.empty方法**:创建指定形状的未初始化数组,元素值不确定。
```python
array_empty = np.empty((2, 4)) # 创建一个2x4的未初始化二维数组
```
**Numpy数组的属性**
1. **维度**(ndim):数组的轴的数量,即数组的维数。
2. **形状**(shape):一个表示数组各维度长度的元组。
3. **大小**(size):数组元素的总数量。
4. **数据类型**(dtype):数组元素的数据类型,如int, float, bool等。
5. **元素的字节大小**(itemsize):数组中单个元素占用的字节数。
6. **字节大小**(nbytes):整个数组占用的内存字节数,等于形状乘以元素的字节大小。
**Numpy数组的索引和切片**
1. **一维数组索引**:与Python列表类似,通过索引值访问数组元素。
2. **多维数组索引**:使用多个索引值访问多维数组中的元素。
3. **切片**:使用切片操作符`:`进行数组部分的选取,例如`array[1:3]`选取一维数组的第二到第三个元素,`array[1:3, 2:4]`选取二维数组的部分区域。
**数组的变形和拼接**
1. **reshape方法**:改变数组的形状,但不改变数据。
2. **切片时使用np.newaxis关键字**:增加数组的维度,如`array[:, np.newaxis]`将一维数组转换为列向量。
3. **数组的拼接**
- `numpy.concatenate()`:沿指定轴合并多个数组。
- `numpy.vstack()`:沿着垂直方向(轴0)合并数组。
- `numpy.hstack()`:沿着水平方向(轴1)合并数组。
4. **数组的分裂**
- `numpy.split()`:将数组沿指定轴分成多个子数组。
- `numpy.vsplit()`:沿垂直方向分割数组。
- `numpy.hsplit()`:沿水平方向分割数组。
Numpy提供的这些操作使得在处理多维数据时更加便捷高效,无论是创建、索引、切片还是组合数组,都有相应的工具来支持。掌握这些操作,能极大地提高数据处理的效率和代码的可读性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-12-21 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38738511
- 粉丝: 3
- 资源: 898
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析