Python 如何将csv中所有行和列中的每个值读取到单个维度数组中?
我正在尝试编写一个脚本,从模拟传感器获取csv数据转储,csv的长度可变,并将其读取到一维数组中。传感器以32采样/秒的速度采样,因此每个水平行是32个值(1秒数据)的缓冲区。我需要所有这些值,从eveny N行,在一个一维数组中,然后我可以用matplotlib绘制为Y轴 下面是我最近在Python2.7x中的尝试。我设法得到了多个1D数组,但每一行都是不同的数组,这不起作用 注意:我知道如何手动连接阵列,但这些阵列可能有10、100或1000行长,因此我显然需要将此过程自动化。如果可能的话,我更愿意使用标准库和/或numpy来实现这一切。提前谢谢Python 如何将csv中所有行和列中的每个值读取到单个维度数组中?,python,python-2.7,csv,Python,Python 2.7,Csv,我正在尝试编写一个脚本,从模拟传感器获取csv数据转储,csv的长度可变,并将其读取到一维数组中。传感器以32采样/秒的速度采样,因此每个水平行是32个值(1秒数据)的缓冲区。我需要所有这些值,从eveny N行,在一个一维数组中,然后我可以用matplotlib绘制为Y轴 下面是我最近在Python2.7x中的尝试。我设法得到了多个1D数组,但每一行都是不同的数组,这不起作用 注意:我知道如何手动连接阵列,但这些阵列可能有10、100或1000行长,因此我显然需要将此过程自动化。如果可能的话,
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中必须有一种更有效的方法来完成这项任务。一个预期输入/输出的示例会有所帮助。
yAxis.append()
?简单地说:import numpy as np;result=np.genfromtxt('data.csv',delimiter=',').flant()
@TigerhawkT3这正是我需要的,谢谢。不过,建议的副本与您在此处的评论不匹配。如果可能的话,我想将您的解决方案标记为正确的解决方案,但我不认为我可以将评论标记为正确的解决方案。我是新来的,所以请从这里建议正确的协议。谢谢。列表中有两个链接的副本,而不仅仅是一个。我从“如何读取csv…”问题中得到了np.genfromtxt('data.csv',delimiter=',')
,从“正确有效地读取csv…”问题中得到了.flatte()
。