Я использую библиотеку scipy для вычисления t-tests, и я пытаюсь понять, почему из одного вызова функции будет несколько типов возврата. Он меня поймал, как в разных средах, он возвращает разные объекты.Несколько типов возврата из одной функции scipy
Например, локально я получаю:
rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)
rvs2 = stats.norm.rvs(loc=5,scale=10,size=500)
stats.ttest_ind(rvs1,rvs2)
(0.26833823296239279, 0.78849443369564776)
stats.ttest_ind(rvs1,rvs2, equal_var = False)
(0.26833823296239279, 0.78849452749500748)
что и он показывает на примере на их сайте. Тем не менее, когда он работает на CircleCI (непрерывная интеграция услуг) в виртуальной машине я получаю:
rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)
rvs2 = stats.norm.rvs(loc=5,scale=10,size=500)
stats.ttest_ind(rvs1,rvs2)
(array(-1.603223040889008), 0.10920183417176929)
stats.ttest_ind(rvs1,rvs2, equal_var = False)
(array(-1.603223040889008), 0.10920185489799822)
, где первый элемент кортежа теперь массив!
Почему эти разные типы возврата кажутся почти взаимозаменяемыми? Это для обратной совместимости (хотя на сервере и на локальном компьютере работает 0.14.0)? Как это может повлиять на окружающую среду?
я в конечном итоге решить ее запуском:
np.array(stats.ttest_ind(rvs1,rvs2))
, которые превращают его в единый массив из двух элементов.
Как интересно, поскольку я вхожу в лучшее решение этой проблемы, я хотел бы понять, почему существуют разные типы возвращаемых данных из одной функции и почему она была разработана как таковая?
Покажите нам версии 'numpy' и' python', а также 'scipy'. Это может быть побочным эффектом некоторых других изменений кода. – hpaulj
python: 2.7.11 & numpy: 1.8.1 – Rambatino
Как упоминалось в hpauj, расскажите нам о скудных версиях, работающих как на локальном компьютере, так и на пульте дистанционного управления. Скорее всего, будет разница в обоих. Между этими двумя версиями изменение, скорее всего, привело к изменению типов вывода. –