Mih*_*iha 3 python arrays numpy typeerror genfromtxt
我的文件如下所示:
1497484825;34425;-4,28,-14;-4,28,-14;-4,28,-14;-4,28,-14;-4,28,-14;-4,28,-14
1497484837;34476;-4,28,-14;-4,28,-14;-4,28,-14;-4,28,-14;-4,28,-14;-4,28,-14
Run Code Online (Sandbox Code Playgroud)
我想使用 np.genfromtxt 将其导入 numpy 数组。最大的问题是它有“;” 和 ',' 作为分隔符。我的尝试:
import numpy as np
import io
s = io.StringIO(open('2e70dfa1.csv').read().replace(';',','))
data = np.genfromtxt(s,dtype=int,delimiter=',')
Run Code Online (Sandbox Code Playgroud)
我收到错误:
类型错误:无法将“bytes”对象隐式转换为 str
怎么解决呢?我也愿意接受全新(更好)的想法。
根据文档:
参数:
fname:文件、str、pathlib.Path、str 列表、生成器 要读取的文件、文件名、列表或生成器。如果文件扩展名是gz或bz2,则首先解压缩文件。请注意,生成器必须返回 Python 3k 中的字节字符串。列表中的字符串或生成器生成的字符串被视为行。
给它一个生成器可能更容易、更有效,只要记住它必须生成字节字符串:
>>> with open('2e70dfa1.csv', 'rb') as f:
... clean_lines = (line.replace(b';',b',') for line in f)
... data = np.genfromtxt(clean_lines, dtype=int, delimiter=',')
...
>>> data
array([[1497484825, 34425, -4, 28, -14,
-4, 28, -14, -4, 28,
-14, -4, 28, -14, -4,
28, -14, -4, 28, -14],
[1497484837, 34476, -4, 28, -14,
-4, 28, -14, -4, 28,
-14, -4, 28, -14, -4,
28, -14, -4, 28, -14]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7154 次 |
| 最近记录: |