Python Numpy 数组初始化与操作详解
146 浏览量
更新于2024-09-04
收藏 60KB PDF 举报
"Python Numpy 数组的初始化和基本操作"
在Python编程中,NumPy库是处理数值计算和科学计算的核心工具。它提供了一个高效的数据结构——ndarray(n-dimensional array),用于存储和操作大型多维数组。NumPy数组不仅在性能上优于Python内置的列表,还提供了丰富的数学和统计功能。
一、基础概念与属性
1. **ndarray**: NumPy中的主要数据结构,可以理解为多维数组。它包含以下关键属性:
- `ndarray.ndim`: 表示数组的维度数,例如一个矩阵是二维的,因此`ndim`为2。
- `ndarray.shape`: 返回一个元组,表示数组在各维度上的大小。例如,(3, 5)表示3行5列。
- `ndarray.size`: 数组中所有元素的总数,等于各维度大小的乘积。
- `ndarray.dtype`: 描述数组中元素的数据类型,如`numpy.int32`、`numpy.float64`等。
- `ndarray.itemsize`: 每个元素在内存中占用的字节数。
2. **示例**:
```python
import numpy as np
a = np.arange(15).reshape(3,5)
print(a.shape) # (3,5)
print(a.ndim) # 2
print(a.dtype.name) # 'int64'
print(a.itemsize) # 8
print(a.size) # 15
```
二、创建数组
1. **从列表或元组创建**:
使用`numpy.array()`函数将Python的列表或元组转换为NumPy数组。
```python
a = np.array([2,3,4]) # 单维数组
b = np.array([1.2,3.5,5.1]) # 单维浮点数数组
c = np.array([(1.5,2,3),(4,5,6)]) # 多维数组
```
2. **指定数据类型**:
在创建数组时可以指定数据类型,例如:
```python
d = np.array([[1,2],[3,4]], dtype=complex) # 复数数组
```
三、数组的基本操作
1. **索引与切片**:
NumPy数组的索引与Python列表类似,支持单索引、切片以及多维索引。
```python
a = np.array([[1,2,3],[4,5,6]])
print(a[0,1]) # 访问第一行第二列的元素
print(a[0:2, 1:]) # 切片获取第一行到第二行,第二列到第三列的子数组
```
2. **形状变换**:
可以使用`reshape()`, `flatten()`, `transpose()`等方法改变数组的形状。
```python
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2) # 将2x3数组变为3x2数组
c = a.flatten() # 将2x3数组变为1D数组
d = a.T # 转置数组
```
3. **数组运算**:
包括加减乘除、矩阵运算、指数、对数等,NumPy提供了丰富的数学函数库。
```python
a = np.array([1,2,3])
b = np.array([4,5,6])
print(a + b) # 加法
print(np.dot(a, b)) # 点乘
```
4. **广播机制**:
当两个数组形状不匹配时,NumPy会自动扩展较小数组以适应较大数组,这就是广播机制。例如,一个1D数组可以与2D数组进行某些运算。
5. **数组复制**:
`copy()`方法用于创建数组的深拷贝,不共享内存。
```python
a = np.array([1,2,3])
b = a.copy() # 创建独立的副本
```
6. **统计函数**:
NumPy提供了诸如`mean()`, `std()`, `min()`, `max()`等统计函数,可以方便地对整个数组或其特定轴进行计算。
```python
a = np.array([1,2,3,4,5])
print(np.mean(a)) # 平均值
print(np.std(a)) # 标准差
```
了解了这些基础知识后,你就能更有效地使用NumPy进行大规模数据处理和科学计算。NumPy库的深入学习还包括高级主题,如ufuncs(通用函数)、高级索引、布尔索引、拼接与堆叠、以及各种排序和查找功能。在实际应用中,掌握这些内容能极大地提高编程效率。
2021-01-02 上传
2020-12-25 上传
2020-09-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-08-29 上传
2023-06-09 上传
weixin_38653687
- 粉丝: 3
- 资源: 973
最新资源
- 全国江河水系图层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网络调试工具:中文支持的网口发包与分析