处理CSV文件:np.genfromtxt()与np.savetxt()的高级用法。
时间: 2024-09-26 17:11:30 浏览: 58
lenses and play.zip
`numpy`库中的`genfromtxt()`函数用于从文本文件读取CSV数据,并将其转换为二维数组,而`savetxt()`函数则用于将数组数据保存到CSV文件中。这两个函数都是处理CSV文件的高级工具,它们支持多种选项来适应不同的需求。
**np.genfromtxt()高级用法**:
1. **指定分隔符**: 可以通过`delimiter`参数指定字段之间的分隔符,默认为空格或逗号,如`delimiter=','`。
2. **数据类型**: 如果你知道数据的预期类型,可以设置`dtype`参数,例如`dtype={'names': ('col1', 'col2'), 'formats': ('f8', 'i4')}`,表示列名和对应的数据类型。
3. **缺失值处理**: 可以设置`missing_values`或` filling_values`处理缺失值,如`filling_values=-999`。
4. **行和列选择**: 使用`usecols`和`skip_header`等参数可以选择需要的列和跳过标题行。
```python
import numpy as np
data = np.genfromtxt('file.csv', delimiter=',', names=True, dtype=None) # 假设第一行为列名
```
**np.savetxt()高级用法**:
1. **自定义分隔符**: 使用`delimiter`参数可以改变保存文件时的字段分隔符,如`delimiter=';'`。
2. **数据格式化**: 可以通过`fmt`参数控制每个元素如何被格式化,例如`fmt='%d'`代表整数格式。
3. **追加模式**: `mode='a'`会以追加的方式写入,而不是默认覆盖现有文件。
```python
data_to_save = np.array([('John', 25), ('Jane', 30)], dtype=[('name', 'U10'), ('age', 'i4')])
np.savetxt('output.csv', data_to_save, delimiter='|', fmt="%s|%d", header="name|age", comments='') # 带头信息
```
阅读全文