Python数据处理:NumPy与Pandas入门指南
立即解锁
发布时间: 2025-08-21 00:39:09 阅读量: 2 订阅数: 5 


Python编程入门与实践
### Python 数据处理:NumPy 与 Pandas 入门指南
在 Python 的数据处理领域,NumPy 和 Pandas 是两个至关重要的库。NumPy 提供了高效的多维数组对象和处理这些数组的工具,而 Pandas 则专注于数据操作和分析,提供了 Series 和 DataFrame 等数据结构。下面将详细介绍这两个库的基本使用方法。
#### 1. NumPy 数组基础
NumPy 是 Python 中用于科学计算的基础库,它提供了多维数组对象和一系列处理数组的函数。
##### 1.1 数组属性
可以通过以下代码查看数组的各种属性:
```python
import numpy as np
array_attributes = np.array([[10, 20, 30], [14, 12, 16]])
print("维度:", array_attributes.ndim)
print("形状:", array_attributes.shape)
print("元素数量:", array_attributes.size)
print("数据类型:", array_attributes.dtype)
print("元素大小:", array_attributes.itemsize)
print("内存地址:", array_attributes.data)
```
上述代码创建了一个二维数组,并打印了该数组的维度、形状、元素数量、数据类型、元素大小和内存地址。
##### 1.2 数组创建
NumPy 提供了多种函数来创建具有初始占位内容的数组,如下表所示:
| 函数名 | 描述 |
| ---- | ---- |
| np.zeros() | 创建一个全零数组 |
| np.ones() | 创建一个全一数组 |
| np.empty() | 创建一个空数组 |
| np.full() | 创建一个填充指定值的数组 |
| np.eye() | 创建一个单位矩阵 |
| np.random.random() | 创建一个包含随机值的数组 |
| np.arange() | 返回给定区间内均匀间隔的值 |
| np.linspace() | 返回指定区间内均匀间隔的指定数量的样本 |
以下是这些函数的使用示例:
```python
import numpy as np
print("全零数组:\n", np.zeros((2, 3)))
print("全一数组:\n", np.ones((3, 4)))
print("空数组:\n", np.empty((2, 3)))
print("填充数组:\n", np.full((3, 3), 2))
print("单位矩阵:\n", np.eye(2, 2))
print("随机数组:\n", np.random.random((2, 2)))
print("arange 函数:\n", np.arange(10, 30, 5))
print("linspace 函数:\n", np.linspace(0, 2, 9))
```
当使用 `arange()` 函数处理浮点数参数时,由于浮点数精度的限制,通常难以预测获得的元素数量。因此,建议使用 `linspace()` 函数,它允许指定要生成的元素数量。
#### 2. 数组索引、切片和迭代
一维数组的索引、切片和迭代操作与 Python 列表类似:
```python
import numpy as np
a = np.arange(5)
print("数组 a:", a)
print("索引操作:", a[2])
print("切片操作:", a[2:4])
a[:4:2] = -999
print("修改后的数组 a:", a)
print("反转数组:", a[::-1])
for each_element in a:
print(each_element)
```
对于多维数组,可以为每个轴指定索引或切片:
```python
import numpy as np
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print("二维数组 a:\n", a)
print("整数索引:", a[1, 3])
print("混合索引和切片:", a[:2, 1:3])
print("一维子数组:", a[1, :])
print("二维子数组:", a[1:2, :])
print("指定列元素:", a[:, 1])
print("指定列子数组:", a[:, 1:2])
for row in a:
print(row)
for each_element in a.flat:
print(each_element)
```
整数数组索引允许使用另一个数组的数据构造任意数组,布尔数组索引则允许选择满足特定条件的元素:
```python
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
print("整数数组索引:", a[[0, 1, 2], [0, 1, 0]])
a = np.array([[11, 12], [13, 14], [15, 16]])
print("布尔数组索引:", a[a > 13])
```
#### 3. 数组的基本算术运算
基本数学函数可以对数组进行元素级操作,既可以使用运算符重载,也可以使用 NumPy 模块中的函数:
```python
import numpy as np
a = np.array([20, 30, 40, 50])
b = np.arange(4)
print("加法:", a + b)
print("NumPy 加法函数:", np.add(a, b))
print("减法:", a - b)
print("NumPy 减法函数:", np.subtract(a, b))
A = np.array([[1, 1], [6, 1]])
B = np.array([[2, 8], [3, 4]])
print("乘法:", A * B)
print("NumPy 乘法函数:", np.multiply(A, B))
print("除法:", A / B)
print("NumPy 除法函数:", np.divide(A, B))
print("矩阵乘法:", np.dot(A, B))
print("数组元素平方:", B**2)
```
#### 4. NumPy 中的数学函数
NumPy 支持各种数学函数,以下是一些常用函数的示例:
```python
import numpy as np
a = np.array([20, 30, 40, 50])
print("正弦函数:", np.sin(a))
print("余弦函数:", np.cos(a))
print("正切函数:", np.tan(a))
a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
print("向下取整:", np.floor(a))
print("向上取整:", np.ceil(a))
print("平方根:", np.sqrt([1, 4, 9]))
print("元素级最大值:", np.maximum([2, 3, 4], [1, 5, 2]))
print("元素级最小值:", np.minimum([2, 3, 4], [1, 5, 2]))
print("求和:", np.sum([0.5, 1.5]))
print("按列求和:", np.sum([[0, 1], [0, 5]], axis=0))
print("按行求和:", np.sum([[0, 1], [0, 5]], axis=1))
```
#### 5. 数组形状的改变
可以使用 `ravel()` 和 `re
0
0
复制全文
相关推荐










