Как повысить точность десятичных знаков в кадрах данных Python?Python

Программы на Python
Ответить
Anonymous
 Как повысить точность десятичных знаков в кадрах данных Python?

Сообщение Anonymous »

Я разрабатываю систему на Python, которая копирует систему, написанную на LabWindows. Часть конструкции включает в себя вычисление Периодограммы, которая возвращает десятичный массив. Затем я добавляю этот массив в DataFrame для дальнейших вычислений. Однако во время этого процесса десятичная точность сокращается до 7 или 9 цифр, что приводит к потере точности.
Проблема:
Мне нужно обеспечить точность не менее 15 десятичных знаков. Чтобы подтвердить проблему, я выполнил следующие шаги:
  • Сгенерировал синусоидальную волну.
  • Рассчитал периодограмму.< /li>
    Сравнил результаты LabWindows и Python.
Наблюдения:
  • Когда Python поддерживает высокую точность, результаты сопоставимы.
  • Соотношение результатов одинаковое: 1:8 :: LabWindows: Python.
  • Когда Python точность ограничена 7 цифрами, значения результирующего массива, превышающие 60 пунктов, отклоняются от этого постоянного соотношения, создавая шум.
Вопрос:
Как обеспечить более высокую точность Python (не менее 15 десятичных знаков) в кадрах данных на протяжении всего процесса?
Код Python:
import numpy as np
from scipy.signal import periodogram

N = 256 # Number of samples
t = np.arange(N) # Time array
signal = (np.sin(2 * np.pi * 0.05 * t) +
np.sin(2 * np.pi * 0.1 * t) +
np.sin(2 * np.pi * 0.25 * t))
fs = 1.0 # Sampling frequency

frequencies, spectrum = periodogram(signal, fs=fs, window='hann', scaling='spectrum')
np.savetxt('py_spectrum.txt', spectrum, header='spectrum Data')

Код LabWindows (C):
#define N 256
double t[N], signal[N];
for (int i = 0; i < N; i++)
{
t = i; // Discrete time index
signal = sin(2 * 3.141592 * 0.05 * t) +
sin(2 * 3.141592 * 0.1 * t) +
sin(2 * 3.141592 * 0.25 * t);
}

// Apply Hann Window and calculate Spectrum
HanWin(signal, N);
Spectrum(signal, N);
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... dataframes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»