繁体   English   中英

使用numpy读取两列的csv文件

[英]Use numpy to read a two-column csv file

我很好奇是否有更好的方法可以做到这一点。 我有一个包含两列的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)

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

您可以使用unpack参数使genfromtxt返回数组的转置。 然后,您可以像这样进行作业:

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.])

如果您想要使用csv类型表的好方法,请使用pandas数据框。

http://pandas.pydata.org/pandas-docs/dev/dsintro.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM