我有[NEAR_DIST](< -row 7)的CSV文件。我想知道如何得到这个数组的均值和STD。
我使用了CSV和numpy:
# -*- coding: utf-8 -*-
import csv
import numpy
with open('C:\\test.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
distance = []
distance.append(float(x) for x in csvfile)
for row in readCSV:
distance = row[7]
a = numpy.array(distance, dtype = 'float_')
b = numpy.sum(a)
print(b)
答案 0 :(得分:0)
这个问题有点不清楚。 我的假设是你有一些形式的数据:
01,02,03,04,05,06,07,08,09,..
11,12,13,14,15,16,17,18,19,32,33,34,35,36,37,38,39,40,41 ..
21,22,23,24,25,26,27,28,29,..
并且您想要在第7列中找到元素的总和。即7 + 17 + 27 + ......在本例中。
这应该有效:
import numpy
data = numpy.genfromtxt("a.csv", delimiter=",")
data[:, 6].sum() # 6 because indices start from 0 in python
答案 1 :(得分:0)
如果我正确理解您的问题和代码,您需要阅读.csv文件中的第七行。这不是用你的row [7]语句完成的。如果你这样做:
for row in readCSV:
您将浏览.csv文件中的所有行,一次读取一行并将其存储为row
。使用分隔符(在本例中为逗号),逗号之间的所有内容都将添加到列表中。例如,csv文件中的行"0,12,23,37.154,444"
最终会出现在以下列表中:[0,12,23,37.154,444]
包含5个元素。
当您访问row[7]
时,您将在循环中获取当前row
的八列(请记住Python从0开始计数)。
此外,您在开头定义的distance
变量会被distance
循环中的for row in readCSV:
变量覆盖。
因此,如果您想要文件中的第七行,我建议使用计数器来计算您已经传递的行数。如果它已到达第七行,它只会将该行的所有数字相加并存储它们:
import csv
with open('C:\\test.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
# Create counter variable to count rows
rowCounter = 0
# Create distance variable to sum distances later
distance = 0
# Go through each row in the csv file
for row in readCSV:
rowCounter += 1 # Add one to the rowCounter
if rowCounter == 7: # If rowCounter is seventh row
for e in row: # For every element in this row
distance += float(e) # Add the float of that element to distance
如果这没有帮助,我建议你在问题中更具体。