2015-09-15 3 views
0

У меня есть одномерный numpy.ndarray, называемый y, который содержит натуральные значения логарифма. Я хочу преобразовать все эти значения в линейный и круглый, используя только одну строку кода. Следующий код работает, но он дает неверные результаты. Например, первое значение в result является 0, а не 15.Как округлить все значения в одномерном numpy.ndarray

result = [round(np.expm1(x)) for x in range(len(y))] 
+3

Поскольку вы используете NumPy, вы можете просто управлять всем массивом 'y' сразу с помощью' np.round (np.expm1 (y)) '. Использование List View с NumPy является медленным и часто ненужным. –

ответ

2

Использование

result = [round(np.expm1(x)) for x in y] 

или

result = [round(np.expm1(y[x])) for x in range(len(y))] 

, как вы есть сейчас, вы ставите массив индекс в функцию.

Смежные вопросы