[英]Python - Read Columns With Numpy
我有一个文件,可以说以下X,Y,Z列
#file.csv
X,Y,Z
1,2,3
4,2,5
15,9,1
#
我正在尝试使用numpy读取X列,并提供平均值,标准偏差和其他统计信息。 我无法让numpy像我想要的那样将它们读取为列。
import numpy as np
import math
my_data = np.genfromtxt(filename, delimiter=',', dtype=float, names=[x,y,z])
如果我执行类似np.average(my_data)
则将平均每一行而不是每一列。 如何将其平均为X,Y和Z,然后将其打印到文件中?
X的数字很长,例如2747477447437.959843848,我不想四舍五入。 这些是ID,完全不能更改! 我该如何实现?
选择axis = 0
以计算列的平均值(或其他值)。 如果您真的不需要第一列,请在使用genfromtxt
选择要读取的cols时指定usecols
参数。
In [1]: import numpy as np
In [2]: from StringIO import StringIO
In [3]: f = StringIO("""X,Y,Z
...: 1,2,3
...: 4,2,5
...: 15,9,1""")
In [4]: arr = np.genfromtxt(f, delimiter=',', dtype=float, skip_header=1)
In [5]: arr
Out[5]:
array([[ 1., 2., 3.],
[ 4., 2., 5.],
[ 15., 9., 1.]])
In [6]: np.average(arr, axis=0)
Out[6]: array([ 6.66666667, 4.33333333, 3. ])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.