Skip to content

NumPy 2.x compatibility, np.NINF was removed #50

@ajjoslin

Description

@ajjoslin

Problem Description

To reproduce:

import pyfolio as pf
import yfinance as yf


history = yf.Ticker("MGK").history("max")
returns = history.Close.pct_change()
pf.create_returns_tear_sheet(returns, live_start_date="2020-1-1")

Traceback:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\FamilyStuff\BudgetFinance\portfolio\env-portfolio\Lib\site-packages\empyrical\stats.py", line 741, in sortino_ratio
    else downside_risk(returns, required_return, period, annualization)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\FamilyStuff\BudgetFinance\portfolio\env-portfolio\Lib\site-packages\empyrical\stats.py", line 821, in downside_risk
    np.NINF,
    ^^^^^^^
  File "c:\FamilyStuff\BudgetFinance\portfolio\env-portfolio\Lib\site-packages\numpy\__init__.py", line 414, in __getattr__
    raise AttributeError(
AttributeError: `np.NINF` was removed in the NumPy 2.0 release. Use `-np.inf` instead.

Additional info:

  • Root cause @ line 821 in empyrical.stats.py, in downside_risk() method
  • Could fix by getting updating empyrical (if available), or specifying a 1.x version of NumPy in requirements?

Versions

  • Pyfolio version: 0.9.7
  • empyrical-reloaded version: 0.5.10
  • Python version: 3.12.6
  • Pandas version: 2.2.2
  • Matplotlib version: 3.9.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions