Log1p и другие функции numpy во фрейме данных не дают одинакового результата при использовании iloc() до или после операции

#pandas #numpy #precision

#pandas #numpy #точность

Вопрос:

У меня есть фрейм данных с данными в нескольких столбцах. Когда я применяю lo&1p и slice с помощью iloc, округление изменяется независимо от того, применяю ли я lo&1p и slice сначала или slice и применяю lo&1p. Такое же поведение происходит с другими функциями numpy.

 data = pd.DataFrame([np.random.normal(.001,.001,10000),np.random.normal(.001,.001,10000)]).T
x = np.lo&1p(data).iloc[:,0]
y = np.lo&1p(data.iloc[:,0])
diff = x.subtract(y,axis = 0)
diff.mean() 

Out: 4.153955452453495e-21
  

Комментарии:

1. Я не могу воспроизвести проблему. Какую версию pandas, numpy и python вы используете?

2. Pandas 0.25.1, Numpy 1.16.5 и Python 3.7.4

3. Возможно, вы захотите рассмотреть возможность обновления pandas и numpy. Я использую pandas версии 1.1.0, numpy версии 1.18.1 и python 3.7.6.

4. Спасибо. К сожалению, не удается выполнить обновление до test.