Как использовать numpy float - PullRequest
       0

Как использовать numpy float

0 голосов
/ 29 января 2020

Я новичок в Python, поэтому я все еще учусь. Тем не менее, я пытаюсь найти среднее, минимальное и максимальное значения из текстового файла, который содержит чтение ветра. У меня это работает, однако мне нужно конвертировать NumPy в плавающее, и я не уверен, как мне это сделать.

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

et c.

Ответы [ 2 ]

2 голосов
/ 29 января 2020

Вы можете проверить тип экземпляра (например, переменную) с помощью

y = 12.0
isinstance(y, float)

Это похоже на Проверьте, является ли число int или float

И, как упоминалось @ Florian H , если ваш текстовый файл содержит только один столбец чисел (одно число в каждой строке), массив numpy, считываемый loadtxt, будет состоять только из чисел с плавающей запятой, поэтому все будет хорошо.

1 голос
/ 29 января 2020

Вы не можете преобразовать массив 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()

Если вам нужно сумма ваших значений go с:

total = np.sum(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...