{
  "__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:1.22.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": "NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:"
            }
          ]
        },
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Annotations of the main namespace are essentially complete. Upstream is a   moving target, so there will likely be further improvements, but the major   work is done. This is probably the most user visible enhancement in this   release."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "A preliminary version of the proposed Array-API is provided. This is a step   in creating a standard collection of functions that can be used across   applications such as CuPy and JAX."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "NumPy now has a DLPack backend. DLPack provides a common interchange format   for array (tensor) data."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "New methods for "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "quantile"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "percentile"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", and related functions. The new   methods provide a complete set of the methods commonly found in the   literature."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The universal functions have been refactored to implement most of   "
                    },
                    {
                      "__type": "InlineRole",
                      "__tag": 4003,
                      "value": "NEP 43 <NEP43>",
                      "domain": null,
                      "role": "ref",
                      "inventory": null
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ".  This also unlocks the ability to experiment with the   future DType API."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "A new configurable allocator for use by downstream projects."
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that the Mac wheels are now based on OS X 10.14 rather than 10.9 that was used in previous NumPy release cycles. 10.14 is the oldest release supported by Apple. Also note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays."
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "NumPy 1.22.0 Release Notes"
        }
      ],
      "level": 0,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Expired deprecations"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Using the strings "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "\"Bytes0\""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "\"Datetime64\""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "\"Str0\""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "\"Uint32\""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "\"Uint64\""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " as a dtype will now raise a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "TypeError"
            },
            {
              "__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-19539"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19539",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecated numeric style dtype strings have been removed"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.loads"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " was deprecated in v1.15, with the recommendation that users use "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "pickle.loads"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instead.  "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ndfromtxt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "mafromtxt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " were both deprecated in v1.17 - users should use "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.genfromtxt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instead with the appropriate value for the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "usemask"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " parameter."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19615"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19615",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Expired deprecations for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "loads"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": ", "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "ndfromtxt"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": ", and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "mafromtxt"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " in npyio"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecations"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The misspelled keyword argument "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "delimitor"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.ma.mrecords.fromtextfile()"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " has been changed to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "delimiter"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", using it will emit a deprecation warning."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19921"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19921",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Use delimiter rather than delimitor as kwarg in mrecords"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.partition"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.argpartition"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " would previously accept boolean values for the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "kth"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " parameter, which would subsequently be converted into integers. This behavior has now been deprecated."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-20000"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20000",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Passing boolean "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "kth"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " values to (arg-)partition has been deprecated"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.MachAr"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " class and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "finfo.machar <numpy.finfo>"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " attribute have been deprecated. Users are encouraged to access the property if interest directly from the corresponding "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.finfo"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " attribute."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-20201"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20201",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "The "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.MachAr"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " class has been deprecated"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Compatibility notes"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "NumPy now sets the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "-ftrapping-math"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " option on clang to enforce correct floating point error handling for universal functions.  Clang defaults to non-IEEE and C99 conform behaviour otherwise.  This change (using the equivalent but newer "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "-ffp-exception-behavior=strict"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ") was attempted in NumPy 1.21, but was effectively never used."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19479"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19479",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Distutils forces strict floating point model on clang"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Floor division of complex types will now result in a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "TypeError"
            }
          ]
        },
        {
          "__type": "Code",
          "__tag": 4050,
          "value": ">>> a = np.arange(10) + 1j* np.arange(10)\n>>> a // 1\nTypeError: ufunc 'floor_divide' not supported for the input types...",
          "execution_status": null
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19135"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19135",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Removed floor division support for complex types"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "When a function that respects "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.ndarray"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " subclasses is vectorized using "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.vectorize"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the vectorized function will now be subclass-safe also for cases that a signature is given (i.e., when creating a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "gufunc"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "): the output class will be the same as that returned by the first call to the underlying function."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19356"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19356",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.vectorize"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " functions now produce the same output class as the base function"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Python support has been dropped. This is rather strict, there are changes that require Python >= 3.8."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19665"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19665",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Python 3.7 is no longer supported"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The repr of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.dtype({\"names\": [\"a\"], \"formats\": [int], \"offsets\": [2]})"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is now "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "dtype({'names': ['a'], 'formats': ['<i8'], 'offsets': [2], 'itemsize': 10})"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", whereas spaces where previously omitted after colons and between fields."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The old behavior can be restored via "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.set_printoptions(legacy=\"1.21\")"
            },
            {
              "__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-19687"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19687",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "str/repr of complex dtypes now include space after punctuation"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Fixed a bug in the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "advance"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " method of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PCG64DSXM"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PCG64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". The bug only affects results when the step was larger than "
            },
            {
              "__type": "InlineMath",
              "__tag": 4057,
              "value": "2^{64}"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " on platforms that do not support 128-bit integers(e.g., Windows and 32-bit Linux)."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-20049"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20049",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Corrected "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "advance"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " in "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "PCG64DSXM"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "PCG64"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "There was bug in the generation of 32 bit floating point values from the uniform distribution that would result in the least significant bit of the random variate always being 0.  This has been fixed."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "This change affects the variates produced by the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "random.Generator"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " methods "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "random"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "standard_normal"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "standard_exponential"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "standard_gamma"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", but only when the dtype is specified as "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.float32"
            },
            {
              "__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-20314"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20314",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Change in generation of random 32 bit floating point variates"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "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": "The masked inner-loop selector is now never used.  A warning will be given in the unlikely event that it was customized."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "We do not expect that any code uses this.  If you do use it, you must unset the selector on newer NumPy version.  Please also contact the NumPy developers, we do anticipate providing a new, more specific, mechanism."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The customization was part of a never-implemented feature to allow for faster masked operations."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19259"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19259",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Masked inner-loops cannot be customized anymore"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The new header "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "experimental_public_dtype_api.h"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " allows to experiment with future API for improved universal function and especially user DType support. At this time it is advisable to experiment using the development version of NumPy since some changes are expected and new features will be unlocked."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19919"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19919",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Experimental exposure of future DType and UFunc API"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "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": "As detailed in "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "NEP 49"
                }
              ],
              "url": "https://numpy.org/neps/nep-0049.html",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the function used for allocation of the data segment of a ndarray can be changed. The policy can be set globally or in a context. For more information see the NEP and the "
            },
            {
              "__type": "CrossRef",
              "__tag": 4002,
              "value": "data_memory",
              "reference": {
                "__type": "LocalRef",
                "__tag": 4022,
                "kind": "docs",
                "path": "reference:c-api:data_memory"
              },
              "kind": "exists"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " reference docs. Also add a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NUMPY_WARN_IF_NO_MEM_POLICY"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " override to warn on dangerous use of transferring ownership by setting "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NPY_ARRAY_OWNDATA"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "NEP 49"
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-17582"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/17582",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "NEP 49 configurable allocators"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "An initial implementation of "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "NEP 47"
                }
              ],
              "url": "https://numpy.org/neps/nep-0047-array-api-standard.html",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " (adoption the array API standard) has been added as "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.array_api"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". The implementation is experimental and will issue a UserWarning on import, as the "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "array API standard"
                }
              ],
              "url": "https://data-apis.org/array-api/latest/index.html",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is still in draft state. "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.array_api"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is a conforming implementation of the array API standard, which is also minimal, meaning that only those functions and behaviors that are required by the standard are implemented (see the NEP for more info). Libraries wishing to make use of the array API standard are encouraged to use "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.array_api"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to check that they are only using functionality that is guaranteed to be present in standard conforming implementations."
            }
          ]
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "NEP 47"
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-18585"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/18585",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Implementation of the NEP 47 (adopting the array API standard)"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "This feature depends on "
            },
            {
              "__type": "CrossRef",
              "__tag": 4002,
              "value": "Doxygen",
              "reference": {
                "__type": "LocalRef",
                "__tag": 4022,
                "kind": "docs",
                "path": "dev:howto_build_docs"
              },
              "kind": "exists"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " in the generation process and on "
            },
            {
              "__type": "CrossRef",
              "__tag": 4002,
              "value": "Breathe",
              "reference": {
                "__type": "LocalRef",
                "__tag": 4022,
                "kind": "docs",
                "path": "dev:howto-docs"
              },
              "kind": "exists"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to integrate it with Sphinx."
            }
          ]
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "Doxygen"
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "Breathe"
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-18884"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/18884",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Generate C/C++ API reference documentation from comments blocks is now possible"
        }
      ],
      "level": 2,
      "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": "mypy"
                }
              ],
              "url": "http://mypy-lang.org/",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " plugin, introduced in "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "numpy/numpy#17843"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/17843",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", has again been expanded: the plugin now is now responsible for setting the platform-specific precision of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.ctypeslib.c_intp"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the latter being used as data type for various "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.ndarray.ctypes"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " attributes."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Without the plugin, aforementioned type will default to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ctypes.c_int64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "To enable the plugin, one must add it to their mypy "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "configuration file"
                }
              ],
              "url": "https://mypy.readthedocs.io/en/stable/config_file.html",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ":"
            }
          ]
        },
        {
          "__type": "Code",
          "__tag": 4050,
          "value": "[mypy]\nplugins = numpy.typing.mypy_plugin",
          "execution_status": null
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "mypy"
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "configuration file"
        },
        {
          "__type": "Target",
          "__tag": 4061,
          "label": "numpy/numpy#17843"
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19062"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19062",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Assign the platform-specific "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "c_intp"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " precision via a mypy plugin"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Add a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ndarray.__dlpack__()"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " method which returns a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "dlpack"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " C structure wrapped in a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PyCapsule"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". Also add a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np._from_dlpack(obj)"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " function, where "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "obj"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " supports "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "__dlpack__()"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and returns an "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ndarray"
            },
            {
              "__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-19083"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19083",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add NEP 47-compatible dlpack support"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "keepdims"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " argument is added to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.argmin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.argmax"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ".  If set to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "True"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the axes which are reduced are left in the result as dimensions with size one.  The resulting array has the same number of dimensions and will broadcast with the input array."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19211"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19211",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "keepdims"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " optional argument added to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.argmin"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": ", "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.argmax"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Computes the number of 1-bits in the absolute value of the input. This works on all the numpy integer types. Analogous to the builtin "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "int.bit_count"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "popcount"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " in C++."
            }
          ]
        },
        {
          "__type": "Code",
          "__tag": 4050,
          "value": ">>> np.uint32(1023).bit_count()\n10\n>>> np.int32(-127).bit_count()\n7",
          "execution_status": null
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19355"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19355",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "bit_count"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " to compute the number of 1-bits in an integer"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ndim"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "axis"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " parameters are now also stored as attributes within each "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.AxisError"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instance."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19459"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19459",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "The "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "ndim"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "axis"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " attributes have been added to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.AxisError"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " added support for windows/arm64 target. Please note "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "OpenBLAS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " support is not yet available for windows/arm64 target."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19513"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19513",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Preliminary support for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "windows/arm64"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " target"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "LoongArch is a new instruction set, numpy compilation failure on LoongArch architecture, so add the commit."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19527"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19527",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Added support for LoongArch"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Clang-format is a C/C++ code formatter, together with the added "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": ".clang-format"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " file, it produces code close enough to the NumPy C_STYLE_GUIDE for general use. Clang-format version 12+ is required due to the use of several new features, it is available in Fedora 34 and Ubuntu Focal among other distributions."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19754"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19754",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "A "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": ".clang-format"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " file has been added"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Based on its counterpart in Python "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "float"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "int"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the numpy floating point and integer types now support "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "float.is_integer"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". Returns "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "True"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " if the number is finite with integral value, and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "False"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " otherwise."
            }
          ]
        },
        {
          "__type": "Code",
          "__tag": 4050,
          "value": ">>> np.float32(-2.0).is_integer()\nTrue\n>>> np.float64(3.2).is_integer()\nFalse\n>>> np.int32(-2).is_integer()\nTrue",
          "execution_status": null
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19803"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19803",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "is_integer"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " is now available to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.floating"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.integer"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "A new symbolic parser has been added to f2py in order to correctly parse dimension specifications. The parser is the basis for future improvements and provides compatibility with Draft Fortran 202x."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19805"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19805",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Symbolic parser for Fortran dimension specifications"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Mimicking "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "Pep 585"
                }
              ],
              "url": "https://peps.python.org/pep-0585/",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.ndarray"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.dtype"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.number"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " classes are now subscriptable for python 3.9 and later. Consequently, expressions that were previously only allowed in .pyi stub files or with the help of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "from __future__ import annotations"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " are now also legal during runtime."
            }
          ]
        },
        {
          "__type": "Code",
          "__tag": 4050,
          "value": ">>> import numpy as np\n>>> from typing import Any\n\n>>> np.ndarray[Any, np.dtype[np.float64]]\nnumpy.ndarray[typing.Any, numpy.dtype[numpy.float64]]",
          "execution_status": null
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19879"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19879",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "ndarray"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": ", "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "dtype"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "number"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " are now runtime-subscriptable"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "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": "All parameters in the can now take any "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "python:path-like object"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". This includes the likes of strings, bytes and objects implementing the "
            },
            {
              "__type": "InlineRole",
              "__tag": 4003,
              "value": "__fspath__<os.PathLike.__fspath__>",
              "domain": null,
              "role": "meth",
              "inventory": null
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " protocol."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-17530"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/17530",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "ctypeslib.load_library"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " can now take any path-like object"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The attributes "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "smallest_normal"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "smallest_subnormal"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " are available as an extension of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "finfo"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " class for any floating-point data type. To use these new attributes, write "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.finfo(np.float64).smallest_normal"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.finfo(np.float64).smallest_subnormal"
            },
            {
              "__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-18536"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/18536",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "smallest_normal"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "smallest_subnormal"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " attributes to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "finfo"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.linalg.qr"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is able to produce results for stacked matrices as inputs. Moreover, the implementation of QR decomposition has been shifted to C from Python."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19151"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19151",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.linalg.qr"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " accepts stacked matrices as inputs"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fromregex"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " now accepts objects implementing the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "__fspath__<os.PathLike>"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " protocol, "
            },
            {
              "__type": "Emphasis",
              "__tag": 4047,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "e.g."
                }
              ]
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "pathlib.Path"
            },
            {
              "__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-19680"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19680",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.fromregex"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " now accepts "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "os.PathLike"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " implementations"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "quantile"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "percentile"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " now have have a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "method="
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " keyword argument supporting 13 different methods.  This replaces the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "interpolation="
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " keyword argument."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The methods are now aligned with nine methods which can be found in scientific literature and the R language.  The remaining methods are the previous discontinuous variations of the default \"linear\" one."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Please see the documentation of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.percentile"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for more information."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19857"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19857",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add new methods for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "quantile"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "percentile"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "A number of the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "nan<x>"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " functions previously lacked parameters that were present in their "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "<x>"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "-based counterpart, "
            },
            {
              "__type": "Emphasis",
              "__tag": 4047,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "e.g."
                }
              ]
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "where"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " parameter was present in "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.mean"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " but absent from "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.nanmean"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The following parameters have now been added to the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "nan<x>"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " functions:"
            }
          ]
        },
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanmin: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "initial"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " & "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanmax: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "initial"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " & "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanargmin: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "keepdims"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " & "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "out"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanargmax: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "keepdims"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " & "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "out"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nansum: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "initial"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " & "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanprod: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "initial"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " & "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanmean: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanvar: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "nanstd: "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "where"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-20027"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20027",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Missing parameters have been added to the "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "nan<x>"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " functions"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Starting from the 1.20 release, PEP 484 type annotations have been included for parts of the NumPy library; annotating the remaining functions being a work in progress. With the release of 1.22 this process has been completed for the main NumPy namespace, which is now fully annotated."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Besides the main namespace, a limited number of sub-packages contain annotations as well. This includes, among others, "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.testing"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.linalg"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.random"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " (available since 1.21)."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-20217"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20217",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Annotating the main Numpy namespace"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "By leveraging Intel Short Vector Math Library (SVML), 18 umath functions ("
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "exp2"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "log2"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "log10"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "expm1"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "log1p"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "cbrt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "sin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "cos"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "tan"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arcsin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arccos"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arctan"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "sinh"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "cosh"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "tanh"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arcsinh"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arccosh"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arctanh"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ") are vectorized using AVX-512 instruction set for both single and double precision implementations.  This change is currently enabled only for Linux users and on processors with AVX-512 instruction set.  It provides an average speed up of 32x and 14x for single and double precision functions respectively."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-19478"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/19478",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Vectorize umath module using AVX-512"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Update the OpenBLAS used in testing and in wheels to v0.3.18"
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-20058"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/20058",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "OpenBLAS v0.3.18"
        }
      ],
      "level": 2,
      "target": null
    }
  ],
  "local_refs": []
}