我是Python新手,所以我还在学习。然而,我试图从包含风读数的文本文件中找到平均值、最小值和最大值。我已经让它工作了,但是,我需要将NumPy转换为float,我不知道我是如何做到的
import numpy as np
def main():
text_file = open("tall_filtrert.txt", "r")
total = 0.0
count = 0
print("Press enter to start")
for line in text_file:
run_time = float(line)
count += 1
total += run_time
text_file.close()
x = np.loadtxt("tall_filtrert.txt")
print("There are", count, "")
print('Average:', np.average(x))
print('Max:', np.amax(x))
print('Min:', np.amin(x))
main()
代码很慢,但是有800k的读数。任何关于如何提高速度的建议都会有所帮助
文本文件如下所示:
1.2056
1.3426
1.8632
等等
您可以使用
这是沿着Check if a number is int or float的路线进行的
正如@Florian H所提到的,如果文本文件只包含一列数字(每行一个数字),那么
loadtxt
读取的numpy数组将只包含浮点数,这样就可以了不能将numpy数组转换为float(除非它只有一个值),因为顾名思义它是一个数组。数组的意思类似于一系列浮点数。这基本上意味着你要把多个数字转换成一个数字
另一方面的值本身应该是float-allready,当您使用
loadtxt
读取它们时,就像前面提到的@KoralpCatalsakal一样np.average
、np.max
和np.min
的返回值也应该是浮点数要解决速度问题,请只读取一次文件
如果需要值的总和,请使用:
相关问题 更多 >
编程相关推荐