Python 使用numpy读取两列csv文件

Python 使用numpy读取两列csv文件,python,csv,numpy,Python,Csv,Numpy,我很好奇是否有更好的方法来做到这一点。我有一个csv文件,有两列(这是相当常见的),例如第一列是时间戳,第二列是数据 # temp.csv 0., 0. 1., 5. 2., 10. 3., 15. 4., 10. 5., 0. 然后我想读这个temp.csv文件: import numpy as np my_csv = np.genfromtxt('./temp.csv', delimiter=',') time = my_csv[:, 0] data = my_csv[:, 1] 这完

我很好奇是否有更好的方法来做到这一点。我有一个csv文件,有两列(这是相当常见的),例如第一列是时间戳,第二列是数据

# temp.csv
0., 0.
1., 5.
2., 10.
3., 15.
4., 10.
5., 0.
然后我想读这个temp.csv文件:

import numpy as np

my_csv = np.genfromtxt('./temp.csv', delimiter=',')
time = my_csv[:, 0]
data = my_csv[:, 1]
这完全没问题,但我只是好奇是否有更优雅的方式来做到这一点,因为这是一种相当普遍的做法

谢谢大家!

-肖恩

你可以做:

my_csv = np.genfromtxt('./temp.csv', delimiter=',')
time, data = my_csv.transpose()
或一行:

time, data = np.genfromtxt('./temp.csv', delimiter=',').transpose()
或另一行,其中
genfromtxt
进行换位:

time, data = np.genfromtxt('./temp.csv', delimiter=',', unpack=True)
它们更优雅吗?这取决于读者。

您可以:

my_csv = np.genfromtxt('./temp.csv', delimiter=',')
time, data = my_csv.transpose()
或一行:

time, data = np.genfromtxt('./temp.csv', delimiter=',').transpose()
或另一行,其中
genfromtxt
进行换位:

time, data = np.genfromtxt('./temp.csv', delimiter=',', unpack=True)

它们更优雅吗?这取决于读者。

如果您想要使用csv类型表的好方法,请使用熊猫数据帧。”


如果您想要使用csv类型表的好方法,请使用熊猫数据帧。”


您可以使用
unpack
参数返回数组的转置。然后你可以这样做你的作业:

In [3]: time, data = genfromtxt('temp.csv', unpack=True, delimiter=',')

In [4]: time
Out[4]: array([ 0.,  1.,  2.,  3.,  4.,  5.])

In [5]: data
Out[5]: array([  0.,   5.,  10.,  15.,  10.,   0.])

您可以使用
unpack
参数返回数组的转置。然后你可以这样做你的作业:

In [3]: time, data = genfromtxt('temp.csv', unpack=True, delimiter=',')

In [4]: time
Out[4]: array([ 0.,  1.,  2.,  3.,  4.,  5.])

In [5]: data
Out[5]: array([  0.,   5.,  10.,  15.,  10.,   0.])

非常感谢。我觉得这很优雅。沃伦的回答也很好!给未来读者的快速评论:我现在使用time,data=np.genfromtxt('./temp.csv',delimiter=',')。T因为我认为这是最清晰的方式:)谢谢!我觉得这很优雅。沃伦的回答也很好!给未来读者的快速评论:我现在使用time,data=np.genfromtxt('./temp.csv',delimiter=',')。T因为我认为这是最清晰的方式:)谢谢!我没有意识到有一个不完整的论点。这就是我想知道的!非常感谢。我没有意识到有一个不完整的论点。这就是我想知道的!