элементы numpy массива округляются автоматически?
У меня есть numpy массив плавающих в Python.
Когда я печатаю массив, первое значение:
[7.14519700e+04, ....
Если, однако, я распечатываю только первое значение на своем собственном, распечатка гласит:
71451.9699799
Очевидно, что эти числа должны быть одинаковыми, поэтому я просто задался вопросом: массив просто показывает мне округлую версию элемента? Второе число здесь имеет 12 значащих цифр, а первое – только 9.
Наверное, мне просто интересно, почему эти цифры разные?
- Python / Pandas / Numpy – прямой расчет количества рабочих дней между двумя датами, исключая праздники
- игнорирование строки при чтении в массив
- Вызов функций статистики из Scipy
- numpy укажите значение по умолчанию
- Пакетная операция со всеми матрицами, хранящимися в n-мерной матрице numpy
Это просто в печати, а не в хранилище. Единственная путаница может возникнуть из-за того, что в первом примере используются настройки точности печати numpy, а во втором – параметры печати общего питона.
Вы можете настроить точность numpy и распечатать
numpy.set_printoptions(precision=20) print myarray`
(отрегулируйте точность по вашим потребностям) или выберите количество значимых цифр в стандартном отформатированном формате на питоне:
print ('%.20f' % myarray[0])
Внутреннее представление числа всегда одно и то же.
Типы в массиве numpy хорошо определены. Вы можете узнать, как они хранятся, numpy.dtype
свойство numpy.dtype
массива.
Например:
import numpy a = numpy.zeros(10) print a.dtype
покажет float64
, то есть 64-битное число с плавающей запятой.
Вы можете явно указать тип массива, используя либо общепринятый аргумент dtype, либо объект type
dtype (то есть вещь, которая делает dtype).
a = numpy.zeros(10, dtype='complex32') # a 32-bit floating point b = numpy.longdouble(a) # create a long-double array from a
Что касается печати, это просто проблема форматирования. Вы можете крутить, как numpy печатает массив с помощью numpy.set_printoptions
:
>>> a = numpy.random.randn(3) # for interest, randn annoyingly doesn't support the dtype arg >>> print a [ 0.12584756 0.73540009 -0.17108244 -0.96818512] >>> numpy.set_printoptions(precision=3) >>> print a [ 0.126 0.735 -0.171 -0.968]
- Вставка MongoDB повышает повторяемость ключа
- Есть ли способ выполнить тестирование тестовой программы с помощью pytest, особенно доступ к файловой системе?
- Добавить массив 1d в 2d-массив в Numpy Python
- Доступ к каждому символу в списке строк, избегающих вложенных циклов
- Pandas HDF Store: сохранение и получение серии с индексом иерархического периода
- Каков наилучший способ уменьшить массив numpy?
- Масштабируемые операции
- Как указать endiannes непосредственно в типе numpy для 16-битного целого числа без знака?
- Преобразование 16-битных оттенков серого в QImage
- Как выполнять элементарные логические операции над массивами numpy
- Как определить приблизительные (заданные порог) непрерывные не нулевые данные с использованием панд?