我是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()
代码很慢,但是有80万个读数。关于如何提高速度的任何建议都将有所帮助。
文本文件如下所示:
1.2056
1.3426
1.8632
等
您不能将numpy数组转换为浮点数(除非它只有一个值),因为它的名字说它是一个数组。数组的含义类似于一系列浮点数。这基本上意味着您将尝试将多个数字转换为一个数字。
[当您使用loadtxt
读取@KoralpCatalsakal之类的值时,手上的值本身应该已经浮空。
np.average
,np.max
和np.min
的返回值也应该是浮点数。
为您解决速度问题:仅读取一次文件。
def main():
x = np.loadtxt("tall_filtrert.txt")
print("There are", len(x), "")
print('Average:', np.average(x))
print('Max:', np.max(x))
print('Min:', np.min(x))
main(
)
如果需要总和,请输入:
total = np.sum(x)