np.genfromtxt读取csv
时间: 2023-04-29 22:03:19 浏览: 106
np.genfromtxt是一个Python库函数,用于从CSV文件中读取数据。它可以自动识别数据类型,并将数据转换为NumPy数组。使用np.genfromtxt函数,可以轻松地读取CSV文件中的数据,并进行进一步的分析和处理。
相关问题
np.loadtxt和np.genfromtxt
np.loadtxt和np.genfromtxt都是NumPy库中用于加载文本文件数据的函数。
np.loadtxt函数是一个简单的文本文件读取函数,它可以加载包含纯数字数据的文本文件,并将其存储为NumPy数组。它假定所有的数据都是数字,并且每行具有相同的列数。
例如,假设我们有一个名为data.txt的文本文件,其中包含以下内容:
```
1 2 3
4 5 6
7 8 9
```
我们可以使用np.loadtxt函数将其加载为NumPy数组:
```python
import numpy as np
data = np.loadtxt('data.txt')
print(data)
```
输出:
```
array([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
```
np.genfromtxt函数是一个更灵活的文本文件读取函数,它可以处理包含不同类型数据(如字符串)和缺失值的文本文件。它还支持跳过标题行和选择要加载的列。
例如,假设我们有一个名为data.csv的csv文件,其中包含以下内容:
```
Name,Age,Gender
John,25,Male
Jane,30,Female
```
我们可以使用np.genfromtxt函数将其加载为NumPy数组:
```python
import numpy as np
data = np.genfromtxt('data.csv', delimiter=',', names=True, dtype=None, encoding=None)
print(data)
```
输出:
```
[(b'John', 25, b'Male') (b'Jane', 30, b'Female')]
```
处理CSV文件:np.genfromtxt()与np.savetxt()的高级用法。
`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='') # 带头信息
```
阅读全文