Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将csv中所有行和列中的每个值读取到单个维度数组中?_Python_Python 2.7_Csv - Fatal编程技术网

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

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行长,因此我显然需要将此过程自动化。如果可能的话,

我正在尝试编写一个脚本,从模拟传感器获取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中必须有一种更有效的方法来完成这项任务。

一个预期输入/输出的示例会有所帮助。
yAxis.append()
?简单地说:
import numpy as np;result=np.genfromtxt('data.csv',delimiter=',').flant()
@TigerhawkT3这正是我需要的,谢谢。不过,建议的副本与您在此处的评论不匹配。如果可能的话,我想将您的解决方案标记为正确的解决方案,但我不认为我可以将评论标记为正确的解决方案。我是新来的,所以请从这里建议正确的协议。谢谢。列表中有两个链接的副本,而不仅仅是一个。我从“如何读取csv…”问题中得到了
np.genfromtxt('data.csv',delimiter=',')
,从“正确有效地读取csv…”问题中得到了
.flatte()