繁体   English   中英

Python-使用Numpy读取列

[英]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.

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