如何将csv中所有行和列中的每个值读入单个维度数组?

2024-04-19 04:18:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个脚本,从模拟传感器获取csv数据转储,使用不同长度的csv,并将它们读入一维数组。传感器以32个采样/秒的速度采样,因此每个水平行是32个值(1秒数据)的缓冲区。我需要所有这些值,从eveny N行,在一个一维数组中,然后我可以用matplotlib绘制为Y轴。你知道吗

这是我最近在Python2.7x中的一次尝试,我成功地获得了多个1D数组,但是每一行都是一个不同的数组,这不起作用。你知道吗

注意:我知道如何手动连接数组,但是这些行可能有10、100或1000行长,因此我显然需要自动化这个过程。如果可能的话,我更愿意使用标准库和/或numpy来实现这一切。提前谢谢。你知道吗

fo = open("data.csv", "r")
lines = fo.readlines()
for line in lines:
    value = line.split(",")
    result = map(float, value)
    nparray = np.asarray(res)
    yAxis = npa.flatten()
fo.close()

“示例”输入CSV文件可能如下所示:

1,2,3,4,5,6,7,8,9,10\n

11,12,13,14,15,16,17,18,19,20\n

21,22,23,24,25,26,27,28,29,30\n

等等。。(对于不确定的行数,不停地重复)

输出:

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]

numpy数组转换将二维数组展平为多个一维数组。这里的问题是无法加入未知数量的数组。我还意识到,在Python中必须有一种更有效的方法来完成这项任务。你知道吗


Tags: csv数据numpy脚本valueline水平传感器