如何使用python读取.csv文件的中间某些行并转换为数组

我现在有一个.csv文件, 头部和尾部都有一些行属于文本注释类的内容,中间行才是数据,所以用numpy.loadtxt貌似不好用

img

python有没有比较好用的,将逗号分割的文本,转换成ndarray的方法。 类似于matlab 的 str2num函数。

img

最好是可以把单个由逗号和换行符分割的大字符串,或者是逗号分割的字符串的列表直接转换,不用循环的方法
实在不行,循环将单行的逗号分割字符串转数组再拼接也行。


import csv

with open('example.csv', 'r') as file:
    reader = csv.reader(file)
    data = [row for idx, row in enumerate(reader) if 2 <= idx]

array = [[float(x) for x in row] for row in data]

使用列表推导式和enumerate函数来获取第3行及其后面的所有行的数据,并将其存储在名为"data"的列表中。

可以逐行读取,然后分析是否属于有效数据,再转换

可以用 numpy.genfromtxt 函数来读取逗号分隔的文本文件并将其转换为 ndarray:
import numpy as np

//用 skip_header=2 来跳过前两行注释
data = np.genfromtxt('xxx.csv', delimiter=',', skip_header=2)
print(data)