Для округления элементов массива NumPy до указанного количества десятичных знаков используется функция np.round() в Python. Он эффективно обрабатывает большие массивы и придерживается правила «округления от половины до чета» для средних значений.
Функция np.round() в Python, являющаяся частью библиотеки NumPy, используется для округления элементов массива до указанного количества десятичных знаков. Он принимает массив и необязательный аргумент «десятичные числа», который по умолчанию равен нулю, если не указан. Функция возвращает новый массив с округленными значениями, не изменяя исходный массив.
- Синтаксис
- Параметры
- Возвращаемое значение
- Варианты использования
- 1. Как округлить
- 2. NumPy округляет до значимого 0
- 3. round() с параметром out
- 4. Округляет до значащих цифр
- 5. Округляет значащие цифры
- 6. Для больших массивов
Синтаксис
Основной синтаксис функции np.round() следующий:
numpy.round(arr, decimals=0, out=None)
Параметры
Здесь:
Имя | Описание |
---|---|
arr | Это входной массив Python, который мы хотим округлить. |
десятичные дроби | Целое число, определяющее количество десятичных знаков, до которых округляются значения. Значение по умолчанию — 0. |
out | Это необязательный параметр. Если это предусмотрено, это должен быть массив Python той же формы, что и arr. Округленные значения будут помещены в этот массив. |
Возвращаемое значение
Функция np.round() в Python возвращает массив той же формы, что и входной массив (arr), содержащий округленные значения. Если используется параметр out, возвратом является ссылка на этот массив.
Варианты использования
Давайте посмотрим несколько примеров, демонстрирующих функцию np.round() в Python.
1. Как округлить
Здесь мы округляем элементы массива NumPy, представляющие различные измерения, до двух десятичных знаков в Python.
import numpy as np rainfall_data = np.array([41.5678, 15.1234, 36.5647]) rounded_rainfall = np.round(rainfall_data, 2) print(rounded_rainfall)
Выход:
[41.57 15.12 36.56]
После реализации кода в редакторе Pycharm снимок экрана указан ниже.
2. NumPy округляет до значимого 0
Чтобы скорректировать набор чисел с плавающей запятой до ближайшего целого числа с помощью функции np.round() в Python.
import numpy as np population_data = np.array([1.5678, 2.1234, 3.5647]) rounded_population = np.round(population_data) print(rounded_population)
Выход:
[2. 2. 4.]
Ниже приведен скриншот после реализации кода в редакторе Pycharm.
3. round() с параметром out
Позвольте мне продемонстрировать эффективную обработку данных путем округления чисел и сохранения их непосредственно в заранее выделенном массиве в Python, используя параметр out в функции NumPy round().
import numpy as np stock_prices = np.array([123.5678, 234.1234, 345.5647]) rounded_prices = np.empty(stock_prices.shape) np.round(stock_prices, 0, out=rounded_prices) print(rounded_prices)
Выход:
[124. 234. 346.]
После выполнения кода в Pycharm результат можно увидеть на снимке экрана ниже.
4. Округляет до значащих цифр
Давайте создадим специальную функцию Python с np.round() для округления определенного числа до определенного количества значащих цифр.
import numpy as np def round_to_significant_figures(num, sig_figs): if num != 0: order_of_magnitude = np.floor(np.log10(np.abs(num))) scale_factor = 10**(order_of_magnitude -(sig_figs - 1)) return np.round(num / scale_factor) * scale_factor else: return 0 bridge_length = 1234.5678 rounded_length = round_to_significant_figures(bridge_length, 3) print(rounded_length)
Выход:
1230.0
Скриншот после реализации кода в редакторе Pycharm указан ниже.
5. Округляет значащие цифры
Здесь мы создадим специальную функцию для округления другого числа до точного количества значащих цифр в Python.
import numpy as np def round_to_significant_figures(num, sig_figs): if num != 0: order_of_magnitude = np.floor(np.log10(np.abs(num))) scale_factor = 10**(order_of_magnitude -(sig_figs - 1)) return np.round(num / scale_factor) * scale_factor else: return 0 concentration = 0.012345 rounded_concentration = round_to_significant_figures(concentration, 4) print(rounded_concentration)
Выход:
0.01234
Ниже приведен скриншот после реализации кода в редакторе Pycharm.
6. Для больших массивов
Давайте воспользуемся np.round для ежегодного расчета численности населения мира, округленной до ближайшего миллиона (6 нулей). Дайте результату (массиву из 66 чисел) имя Population_rounded. Ваш код должен быть очень коротким.
import numpy as np world_population = np.array([2558000000, 2595000000, 2637000000, 2682000000, 2730000000, 2782000000, 2835000000, 2891000000, 2948000000, 3001000000, 3043000000, 3084000000, 3140000000, 3210000000, 3281000000, 3350000000, 3421000000, 3490000000, 3562000000, 3637000000, 3713000000, 3790000000, 3867000000, 3942000000, 4017000000, 4089000000, 4160000000, 4232000000, 4304000000, 4379000000, 4451000000, 4534000000, 4615000000, 4696000000, 4775000000, 4856000000, 4941000000, 5027000000, 5115000000, 5201000000, 5289000000, 5372000000, 5456000000, 5538000000, 5619000000, 5699000000, 5779000000, 5858000000, 5935000000, 6012000000, 6089000000, 6165000000, 6242000000, 6319000000, 6396000000, 6473000000, 6551000000, 6630000000, 6709000000, 6788000000, 6866000000, 6944000000, 7022000000, 7101000000, 7179000000, 7256000000]) population_rounded = np.round(world_population / 1e6) * 1e6 print(population_rounded)
Выход:
[2.558e+09 2.595e+09 2.637e+09 2.682e+09 2.730e+09 2.782e+09 2.835e+09 2.891e+09 2.948e+09 3.001e+09 3.043e+09 3.084e+09 3.140e+09 3.210e+09 3.281e+09 3.350e+09 3.421e+09 3.490e+09 3.562e+09 3.637e+09 3.713e+09 3.790e+09 3.867e+09 3.942e+09 4.017e+09 4.089e+09 4.160e+09 4.232e+09 4.304e+09 4.379e+09 4.451e+09 4.534e+09 4.615e+09 4.696e+09 4.775e+09 4.856e+09 4.941e+09 5.027e+09 5.115e+09 5.201e+09 5.289e+09 5.372e+09 5.456e+09 5.538e+09 5.619e+09 5.699e+09 5.779e+09 5.858e+09 5.935e+09 6.012e+09 6.089e+09 6.165e+09 6.242e+09 6.319e+09 6.396e+09 6.473e+09 6.551e+09 6.630e+09 6.709e+09 6.788e+09 6.866e+09 6.944e+09 7.022e+09 7.101e+09 7.179e+09 7.256e+09]
После выполнения кода в Pycharm результат можно увидеть на снимке экрана ниже.