{
  "__type": "IngestedDoc",
  "__tag": 4010,
  "_content": {},
  "_ordered_sections": [],
  "item_file": null,
  "item_line": null,
  "item_type": null,
  "aliases": [],
  "example_section_data": {
    "__type": "Section",
    "__tag": 4015,
    "children": [],
    "title": [],
    "level": 0,
    "target": null
  },
  "see_also": [],
  "signature": null,
  "references": null,
  "qa": "release:2.3.0-notes",
  "arbitrary": [
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [],
      "level": 0,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The NumPy 2.3.0 release continues the work to improve free threaded Python support and annotations together with the usual set of bug fixes. It is unusual in the number of expired deprecations, code modernizations, and style cleanups. The latter may not be visible to users, but is important for code maintenance over the long term. Note that we have also upgraded from manylinux2014 to manylinux_2_28."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Users running on a Mac having an M4 cpu might see various warnings about invalid values and such. The warnings are a known problem with Accelerate. They are annoying, but otherwise harmless. Apple promises to fix them."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "This release supports Python versions 3.11-3.13, Python 3.14 will be supported when it is released."
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "NumPy 2.3.0 Release Notes"
        }
      ],
      "level": 0,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Interactive examples in the NumPy documentation."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Building NumPy with OpenMP Parallelization."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Preliminary support for Windows on ARM."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Improved support for free threaded Python."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Improved annotations."
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Highlights"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "New functions"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The new function "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.strings.slice"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " was added, which implements fast native slicing of string arrays. It supports the full slicing API including negative slice offsets and steps."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-27789"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/27789",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "New function "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.strings.slice"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy.typing.mypy_plugin"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been deprecated in favor of platform-agnostic   static type inference. Please remove "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy.typing.mypy_plugin"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " from the "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "plugins"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   section of your mypy configuration. If this change results in new errors being   reported, kindly open an issue."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28129"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28129",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy.typing.NBitBase"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " type has been deprecated and will be removed in   a future version."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "This type was previously intended to be used as a generic upper bound for   type-parameters, for example:"
                    }
                  ]
                },
                {
                  "__type": "Code",
                  "__tag": 4050,
                  "value": "import numpy as np\n  import numpy.typing as npt\n\n  def f[NT: npt.NBitBase](x: np.complexfloating[NT]) -> np.floating[NT]: ...",
                  "execution_status": null
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "But in NumPy 2.2.0, "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "float64"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "complex128"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " were changed to concrete   subtypes, causing static type-checkers to reject "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "x: np.float64 =   f(np.complex128(42j))"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "So instead, the better approach is to use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "typing.overload"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ":"
                    }
                  ]
                },
                {
                  "__type": "Code",
                  "__tag": 4050,
                  "value": "import numpy as np\n  from typing import overload\n\n  @overload\n  def f(x: np.complex64) -> np.float32: ...\n  @overload\n  def f(x: np.complex128) -> np.float64: ...\n  @overload\n  def f(x: np.clongdouble) -> np.longdouble: ...",
                  "execution_status": null
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28884"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28884",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecations"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Remove deprecated macros like "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "NPY_OWNDATA"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " from Cython interfaces in favor   of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "NPY_ARRAY_OWNDATA"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.7)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Remove "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy/npy_1_7_deprecated_api.h"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and C macros like "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "NPY_OWNDATA"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   in favor of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "NPY_ARRAY_OWNDATA"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.7)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Remove alias "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "generate_divbyzero_error"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " to   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "npy_set_floatstatus_divbyzero"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "generate_overflow_error"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " to   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "npy_set_floatstatus_overflow"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.10)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Remove "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.tostring"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Raise on "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.conjugate"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " of non-numeric types (deprecated since 1.13)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Raise when using "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.bincount(...minlength=None)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", use 0 instead   (deprecated since 1.14)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Passing "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "shape=None"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " to functions with a non-optional shape argument   errors, use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "()"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead (deprecated since 1.20)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Inexact matches for "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "mode"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "searchside"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " raise (deprecated since 1.20)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Setting "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "__array_finalize__ = None"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " errors (deprecated since 1.23)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.fromfile"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.fromstring"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " error on bad data, previously they   would guess (deprecated since 1.18)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "datetime64"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "timedelta64"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " construction with a tuple no longer   accepts an "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "event"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " value, either use a two-tuple of (unit, num) or a   4-tuple of (unit, num, den, 1) (deprecated since 1.14)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "When constructing a "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "dtype"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " from a class with a "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "dtype"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " attribute, that   attribute must be a dtype-instance rather than a thing that can be parsed as   a dtype instance (deprecated in 1.19). At some point the whole construct of   using a dtype attribute will be deprecated (see #25306)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Passing booleans as partition index errors (deprecated since 1.23)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Out-of-bounds indexes error even on empty arrays (deprecated since 1.20)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.tostring"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been removed, use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "tobytes"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead (deprecated since 1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Disallow make a non-writeable array writeable for arrays with a base that do   not own their data (deprecated since 1.17)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "concatenate()"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " with "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "axis=None"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " uses "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "same-kind"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " casting by default,   not "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "unsafe"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.20)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Unpickling a scalar with object dtype errors (deprecated since 1.20)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The binary mode of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "fromstring"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " now errors, use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "frombuffer"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead   (deprecated since 1.14)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Converting "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.inexact"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " or "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.floating"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " to a dtype errors (deprecated   since 1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Converting "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.complex"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.integer"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.signedinteger"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ",   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.unsignedinteger"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.generic"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " to a dtype errors (deprecated since   1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The Python built-in "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "round"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " errors for complex scalars. Use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.round"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " or   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "scalar.round"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead (deprecated since 1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "'np.bool' scalars can no longer be interpreted as an index (deprecated since 1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Parsing an integer via a float string is no longer supported. (deprecated   since 1.23) To avoid this error you can   * make sure the original data is stored as integers.   * use the "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "converters=float"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " keyword argument.   * Use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.loadtxt(...).astype(np.int64)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The use of a length 1 tuple for the ufunc "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "signature"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " errors. Use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "dtype"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   or  fill the tuple with "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "None"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.19)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Special handling of matrix is in np.outer is removed. Convert to a ndarray   via "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "matrix.A"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (deprecated since 1.20)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28254"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28254",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Removed the "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.compat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " package source code (removed in 2.0)"
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28961"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28961",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Expired deprecations"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "NpyIter_GetTransferFlags"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " is now available to check if   the iterator needs the Python API or if casts may cause floating point   errors (FPE).  FPEs can for example be set when casting "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "float64(1e300)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   to "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "float32"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (overflow to infinity) or a NaN to an integer (invalid value)."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-27883"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/27883",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "NpyIter"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " now has no limit on the number of operands it supports."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28080"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28080",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "C API changes"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "NumPy now has the new "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NpyIter_GetTransferFlags"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " function as a more precise way checking of iterator/buffering needs.  I.e. whether the Python API/GIL is required or floating point errors may occur. This function is also faster if you already know your needs without buffering."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NpyIter_IterationNeedsAPI"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " function now performs all the checks that were previously performed at setup time.  While it was never necessary to call it multiple times, doing so will now have a larger cost."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-27998"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/27998",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "New "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "NpyIter_GetTransferFlags"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "NpyIter_IterationNeedsAPI"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " change"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The type parameter of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.dtype"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " now defaults to "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "typing.Any"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ".   This way, static type-checkers will infer "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "dtype: np.dtype"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " as   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "dtype: np.dtype[Any]"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", without reporting an error."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28669"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28669",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Static type-checkers now interpret:"
                    }
                  ]
                },
                {
                  "__type": "BulletList",
                  "__tag": 4053,
                  "ordered": false,
                  "start": 1,
                  "children": [
                    {
                      "__type": "ListItem",
                      "__tag": 4054,
                      "children": [
                        {
                          "__type": "Paragraph",
                          "__tag": 4045,
                          "children": [
                            {
                              "__type": "InlineCode",
                              "__tag": 4051,
                              "value": "_: np.ndarray"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " as "
                            },
                            {
                              "__type": "InlineCode",
                              "__tag": 4051,
                              "value": "_: npt.NDArray[typing.Any]"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": "."
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "__type": "ListItem",
                      "__tag": 4054,
                      "children": [
                        {
                          "__type": "Paragraph",
                          "__tag": 4045,
                          "children": [
                            {
                              "__type": "InlineCode",
                              "__tag": 4051,
                              "value": "_: np.flatiter"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": " as "
                            },
                            {
                              "__type": "InlineCode",
                              "__tag": 4051,
                              "value": "_: np.flatiter[np.ndarray]"
                            },
                            {
                              "__type": "Text",
                              "__tag": 4046,
                              "value": "."
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "This is because their type parameters now have default values."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28940"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28940",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "New Features"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "pkgconf"
                }
              ],
              "url": "https://github.com/pypackaging-native/pkgconf-pypi",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " PyPI package provides an interface for projects like NumPy to register their own paths to be added to the pkg-config search path. This means that when using "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "pkgconf"
                }
              ],
              "url": "https://github.com/pypackaging-native/pkgconf-pypi",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " from PyPI, NumPy will be discoverable without needing for any custom environment configuration."
            }
          ]
        },
        {
          "__type": "Admonition",
          "__tag": 4056,
          "kind": "attention",
          "base_type": "warning",
          "children": [
            {
              "__type": "AdmonitionTitle",
              "__tag": 4055,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "attention Attention"
                }
              ]
            },
            {
              "__type": "Paragraph",
              "__tag": 4045,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "This only applies when using the "
                },
                {
                  "__type": "Link",
                  "__tag": 4049,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "pkgconf"
                    }
                  ],
                  "url": "https://github.com/pypackaging-native/pkgconf-pypi",
                  "title": ""
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": " package from "
                },
                {
                  "__type": "Link",
                  "__tag": 4049,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "PyPI"
                    }
                  ],
                  "url": "https://pypi.org/",
                  "title": ""
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": ", or put another way, this only applies when installing "
                },
                {
                  "__type": "Link",
                  "__tag": 4049,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "pkgconf"
                    }
                  ],
                  "url": "https://github.com/pypackaging-native/pkgconf-pypi",
                  "title": ""
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": " via a Python package manager."
                }
              ]
            },
            {
              "__type": "Paragraph",
              "__tag": 4045,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "If you are using "
                },
                {
                  "__type": "InlineCode",
                  "__tag": 4051,
                  "value": "pkg-config"
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": " or "
                },
                {
                  "__type": "InlineCode",
                  "__tag": 4051,
                  "value": "pkgconf"
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": " provided by your system, or any other source that does not use the "
                },
                {
                  "__type": "Link",
                  "__tag": 4049,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "pkgconf-pypi"
                    }
                  ],
                  "url": "https://github.com/pypackaging-native/pkgconf-pypi",
                  "title": ""
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": " project, the NumPy pkg-config directory will not be automatically added to the search path. In these situations, you might want to use "
                },
                {
                  "__type": "InlineCode",
                  "__tag": 4051,
                  "value": "numpy-config"
                },
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "."
                }
              ]
            }
          ]
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "pkgconf"
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "PyPI"
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "pkgconf-pypi"
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28214"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28214",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "NumPy now registers its pkg-config paths with the "
        },
        {
          "__type": "InlineRole",
          "__tag": 4003,
          "value": "pkgconf_",
          "domain": null,
          "role": null,
          "inventory": null
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " PyPI package"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "NumPy has the sometimes difficult behavior that it currently usually returns scalars rather than 0-D arrays (even if the inputs were 0-D arrays). This is especially problematic for non-numerical dtypes (e.g. "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "object"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "For ufuncs (i.e. most simple math functions) it is now possible to use "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "out=..."
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " (literally `...`, e.g. "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "out=Ellipsis"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ") which is identical in behavior to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "out"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " not being passed, but will ensure a non-scalar return. This spelling is borrowed from "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arr1d[0, ...]"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " where the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "..."
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " also ensures a non-scalar return."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Other functions with an "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "out="
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " kwarg should gain support eventually. Downstream libraries that interoperate via "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "__array_ufunc__"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "__array_function__"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " may need to adapt to support this."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28576"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28576",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Allow "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "out=..."
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " in ufuncs to ensure array result"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "NumPy now supports OpenMP parallel processing capabilities when built with the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "-Denable_openmp=true"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " Meson build flag. This feature is disabled by default. When enabled, "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.sort"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.argsort"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " functions can utilize OpenMP for parallel thread execution, improving performance for these operations."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28619"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28619",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Building NumPy with OpenMP Parallelization"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The NumPy documentation includes a number of examples that can now be run interactively in your browser using WebAssembly and Pyodide."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Please note that the examples are currently experimental in nature and may not work as expected for all methods in the public API."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-26745"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/26745",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Interactive examples in the NumPy documentation"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Scalar comparisons between non-comparable dtypes such as   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.array(1) == np.array('s')"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " now return a NumPy bool instead of   a Python bool."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-27288"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/27288",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.nditer"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " now has no limit on the number of supported operands   (C-integer)."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28080"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28080",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "No-copy pickling is now supported for any    array that can be transposed to a C-contiguous array."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28105"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28105",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "__repr__"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " for user-defined dtypes now prefers the "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "__name__"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " of the   custom dtype over a more generic name constructed from its "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "kind"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "itemsize"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28250"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28250",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.dot"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " now reports floating point exceptions."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28442"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28442",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.dtypes.StringDType"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " is now a   "
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "generic type"
                        }
                      ],
                      "url": "https://typing.python.org/en/latest/spec/generics.html",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " which   accepts a type argument for "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "na_object"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " that defaults to "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "typing.Never"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ".   For example, "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "StringDType(na_object=None)"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " returns a "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "StringDType[None]"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ",   and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "StringDType()"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " returns a "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "StringDType[typing.Never]"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28856"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28856",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Improvements"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Added warning messages if at least one of atol or rtol are either "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.nan"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.inf"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " within "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.isclose"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        },
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Warnings follow the user's "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.seterr"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " settings"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28205"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28205",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Added warnings to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.isclose"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Performance improvements and changes"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.unique"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " now tries to use a hash table to find unique values instead of sorting values before finding unique values. This is limited to certain dtypes for now, and the function is now faster for those dtypes. The function now also exposes a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "sorted"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " parameter to allow returning unique values as they were found, instead of sorting them afterwards."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-26018"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/26018",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Performance improvements to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.unique"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.sort"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.argsort"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " functions now can leverage OpenMP for parallel thread execution, resulting in up to 3.5x speedups on x86 architectures with AVX2 or AVX-512 instructions. This opt-in feature requires NumPy to be built with the -Denable_openmp Meson flag. Users can control the number of threads used by setting the OMP_NUM_THREADS environment variable."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28619"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28619",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Performance improvements to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.sort"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.argsort"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Earlier, floating point casts to and from "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.float16"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " types were emulated in software on all platforms."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Now, on ARM devices that support Neon float16 intrinsics (such as recent Apple Silicon), the native float16 path is used to achieve the best performance."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28769"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28769",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Performance improvements for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.float16"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " casts"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Enable using BLAS for "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "matmul"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " even when operands are non-contiguous by copying if needed."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-23752"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/23752",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Performance improvements for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.matmul"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The vector norm "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "ord=inf"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and the matrix norms "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "ord={1, 2, inf, 'nuc'}"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   now always returns zero for empty arrays. Empty arrays have at least one axis   of size zero. This affects "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.linalg.norm"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.linalg.vector_norm"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", and   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.linalg.matrix_norm"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ". Previously, NumPy would raises errors or return   zero depending on the shape of the array."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28343"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28343",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "A spelling error in the error message returned when converting a string to a   float with the method "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.format_float_positional"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been fixed."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28569"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28569",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "NumPy's "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "__array_api_version__"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " was upgraded from "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "2023.12"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " to "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "2024.12"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy.count_nonzero"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " for "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "axis=None"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " (default) now returns a NumPy scalar   instead of a Python integer."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The parameter "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "axis"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " in "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy.take_along_axis"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " function has now a default   value of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "-1"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28615"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28615",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Printing of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.float16"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.float32"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " scalars and arrays have been improved by   adjusting the transition to scientific notation based on the floating point precision.   A new legacy "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.printoptions"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " mode "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "'2.2'"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been added for backwards compatibility."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-28703"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/28703",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Multiplication between a string and integer now raises OverflowError instead   of MemoryError if the result of the multiplication would create a string that   is too large to be represented. This follows Python's behavior."
                    }
                  ]
                },
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-29060"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/29060",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Changes"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The relatively new function (added in NumPy 2.0) "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "unique_values"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " may now return unsorted results.  Just as "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "unique_counts"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "unique_all"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " these never guaranteed a sorted result, however, the result was sorted until now.  In cases where these do return a sorted result, this may change in future releases to improve performance."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-26018"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/26018",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "unique_values"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " may return unsorted data"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The main iterator, used in math functions and via "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.nditer"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " from Python and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NpyIter"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " in C, now behaves differently for some buffered iterations.  This means that:"
            }
          ]
        },
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The buffer size used will often be smaller than the maximum buffer sized   allowed by the "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "buffersize"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " parameter."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The \"growinner\" flag is now honored with buffered reductions when no operand   requires buffering."
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "For "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.sum()"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " such changes in buffersize may slightly change numerical results of floating point operations.  Users who use \"growinner\" for custom reductions could notice changes in precision (for example, in NumPy we removed it from "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "einsum"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to avoid most precision changes and improve precision for some 64bit floating point inputs)."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-27883"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/27883",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Changes to the main iterator and potential numerical changes"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The minimum supported version was updated from 8.4.0 to 9.3.0, primarily in order to reduce the chance of platform-specific bugs in old GCC versions from causing issues."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28102"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28102",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "The minimum supported GCC version is now 9.3.0"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The automatic bin selection algorithm in "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.histogram"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " has been modified to avoid out-of-memory errors for samples with low variation.  For full control over the selected bins the user can use set the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "bin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "range"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " parameters of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.histogram"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28426"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28426",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Changes to automatic bin selection in numpy.histogram"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Wheels for linux systems will use the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "manylinux_2_28"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " tag (instead of the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "manylinux2014"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " tag), which means dropping support for redhat7/centos7, amazonlinux2, debian9, ubuntu18.04, and other pre-glibc2.28 operating system versions, as per the "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "PEP 600 support table"
                }
              ],
              "url": "https://github.com/mayeut/pep600_compliance?tab=readme-ov-file#pep600-compliance-check",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "PEP 600 support table"
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28436"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28436",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Build manylinux_2_28 wheels"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Remove use of -Wl,-ld_classic on macOS. This hack is no longer needed by Spack, and results in libraries that cannot link to other libraries built with ld (new)."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28713"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28713",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Remove use of -Wl,-ld_classic on macOS"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Re-enable overriding functions in the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.strings"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " module."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-28741"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/28741",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Re-enable overriding functions in the "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.strings"
        }
      ],
      "level": 2,
      "target": null
    }
  ],
  "local_refs": []
}