python – numpy.genfromtxt导入元组而不是数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – numpy.genfromtxt导入元组而不是数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3042字,纯文字阅读大概需要5分钟。
内容图文
我正在努力学习Python和Numpy,所以请耐心等待.我正在使用numpy.genfromtxt将CSV文件导入矩阵. CSV看起来如下:
Time(min),Nm,Speed,Power,Distance,Rpm,Bpm,interval,Altitude,Rate,Incline,Temp,PowerBalance,LeftTorqueEffectiveness,RightTorqueEffectiveness,getLeftPedalSmoothness,getRightPedalSmoothness,getCombinedPedalSmoothness,THb,SmO2,km
0.016666668,,4.3555064,0,0.002,0,118,1,684.3,0.0,0.0,14.71,50,-1.0,-1.0,-1.0,-1.0,-1.0,311.72,311.72
0.033333335,,4.3555064,20,0.002,0,119,1,684.3,0.0,0.0,14.71,50,-1.0,-1.0,-1.0,-1.0,-1.0,311.72,311.72
0.05,,4.444291,13,0.004,0,119,1,684.3,0.0,0.0,14.71,50,-1.0,-1.0,-1.0,-1.0,-1.0,311.72,311.72
现在我跑:
matrixCsv = np.genfromtxt(open(csvFile, "rb"), delimiter=',', missing_values=0,skip_header=1,dtype=float, usecols=(0,2,3,4,5,6,7,8,9,10,11,17),names=True)
我得到:
[ (0.033333335, 4.3555064, 20.0, 0.002, 0.0, 119.0, 1.0, 684.3, 0.0, 0.0, 14.71, -1.0)
(0.05, 4.444291, 13.0, 0.004, 0.0, 119.0, 1.0, 684.3, 0.0, 0.0, 14.71, -1.0)
(0.06666667, 4.4781966, 16.0, 0.006, 0.0, 120.0, 1.0, 684.3, 0.0, 0.0, 14.71, -1.0)
...,
对我来说,它看起来像元组封装成一个数组.但为什么元组呢?我知道numpy数组/矩阵需要是同构的,并且numpy会使非均匀数据产生元组.但为什么我的数据不均匀?我不明白…
解决方法:
你对如何使用skip_header和名称感到困惑.读取数据并将第一行用作变量名的正确方法是:
In [185]:
np.genfromtxt('temp.csv', delimiter=',', missing_values=0,skip_header=0,dtype=float, usecols=(0,2,3,4,5,6,7,8,9,10,11,17),names=True)
Out[185]:
array([ (0.016666668, 4.3555064, 0.0, 0.002, 0.0, 118.0, 1.0, 684.3, 0.0, 0.0, 14.71, -1.0),
(0.033333335, 4.3555064, 20.0, 0.002, 0.0, 119.0, 1.0, 684.3, 0.0, 0.0, 14.71, -1.0),
(0.05, 4.444291, 13.0, 0.004, 0.0, 119.0, 1.0, 684.3, 0.0, 0.0, 14.71, -1.0)],
dtype=[('Timemin', '<f8'), ('Speed', '<f8'), ('Power', '<f8'), ('Distance', '<f8'), ('Rpm', '<f8'), ('Bpm', '<f8'), ('interval', '<f8'), ('Altitude', '<f8'), ('Rate', '<f8'), ('Incline', '<f8'), ('Temp', '<f8'), ('getCombinedPedalSmoothness', '<f8')])
它不是元组数组,而是结构化数组. skip_header = 1将使用第一行数据作为名称,这可能不是您想要的(请参阅如何丢失第一行数据?).
您还可以删除名称并将数据读入普通的numpy数组.
In [186]:
np.genfromtxt('temp.csv', delimiter=',', missing_values=0,skip_header=1,dtype=float, usecols=(0,2,3,4,5,6,7,8,9,10,11,17))
Out[186]:
array([[ 1.66666680e-02, 4.35550640e+00, 0.00000000e+00,
2.00000000e-03, 0.00000000e+00, 1.18000000e+02,
1.00000000e+00, 6.84300000e+02, 0.00000000e+00,
0.00000000e+00, 1.47100000e+01, -1.00000000e+00],
[ 3.33333350e-02, 4.35550640e+00, 2.00000000e+01,
2.00000000e-03, 0.00000000e+00, 1.19000000e+02,
1.00000000e+00, 6.84300000e+02, 0.00000000e+00,
0.00000000e+00, 1.47100000e+01, -1.00000000e+00],
[ 5.00000000e-02, 4.44429100e+00, 1.30000000e+01,
4.00000000e-03, 0.00000000e+00, 1.19000000e+02,
1.00000000e+00, 6.84300000e+02, 0.00000000e+00,
0.00000000e+00, 1.47100000e+01, -1.00000000e+00]])
内容总结
以上是互联网集市为您收集整理的python – numpy.genfromtxt导入元组而不是数组全部内容,希望文章能够帮你解决python – numpy.genfromtxt导入元组而不是数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。