簡體   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