Имеется массив Numpy, состоящий из значений с плавающей запятой, например:
floatvalues = [1.3423 , 40.331 , 3.123894,
93.3941, 1.34, 23.59]
Используемый мной массив Numpy содержит 8000 столбцов и 38 строк.Моя цель состояла в том, чтобы определить максимум каждой строки и вернуть эти максимальные значения в виде вектора.Поэтому я создал фрейм данных np.array и использовал функцию максимум.После этого я хотел округлить максимальные значения до различного количества десятичных дробей (например, десятичных = 3).Желаемый результат:
0 93.395
1 40.332
2 23.590
Поэтому я использовал следующий код:
import pandas as pd
import numpy as np
import math
def roundup(value, decimals=0):
n = 10**-decimals
return round(math.ceil(value / n) * n, decimals)
input_file = np.load("U:\\floatvalues.npy")
input_array = pd.DataFrame(input_file)
inputs_max = np.max(input_array, axis=0)
rounded_inputs_max = roundup(inputs_max, 4)
print(rounded_inputs_max)
Это привело к:
TypeError: cannot convert the series to <class 'float'>
Поэтому я попытался получить прямой доступ к максимальным значениямиз np.array, а не из DataFrame:
input_file = np.load("U:\\floatvalues.npy)
#input_array = pd.DataFrame(input_file)
inputs_max = np.max(input_file, axis=0)
rounded_inputs_max = roundup(inputs_max,4)
print(rounded_inputs_max)
Это привело к:
TypeError: only size-1 arrays can be converted to Python scalars
Предпочтительно, я хотел бы первый способ работать с использованием DataFrame,Может кто-нибудь помочь мне, пожалуйста?Заранее спасибо.