{
  "__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.18.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": "In addition to the usual bug fixes, this NumPy release cleans up and documents the new random C-API, expires a large number of old deprecations, and improves the appearance of the documentation. The Python versions supported are 3.5-3.8. This is the last NumPy release series that will support Python 3.5."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Downstream developers should use Cython >= 0.29.14 for Python 3.8 support and OpenBLAS >= 3.7 to avoid problems on the Skylake architecture."
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "NumPy 1.18.0 Release Notes"
        }
      ],
      "level": 0,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The C-API for "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy.random"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been defined and documented."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Basic infrastructure for linking with 64 bit BLAS and LAPACK libraries."
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Many documentation improvements."
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Highlights"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "New functions"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The method "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "multivariate_hypergeometric"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " has been added to the class "
            },
            {
              "__type": "CrossRef",
              "__tag": 4002,
              "value": "numpy.random.Generator",
              "reference": {
                "__type": "RefInfo",
                "__tag": 4000,
                "module": "numpy",
                "version": "*",
                "kind": "api",
                "path": "numpy.random._generator:Generator"
              },
              "kind": "module"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ".  This method generates random variates from the multivariate hypergeometric probability distribution. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-13794"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/13794",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Multivariate hypergeometric distribution added to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.random"
        }
      ],
      "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": "In future numpy releases, the functions "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.fromfile"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.fromstring"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " will throw an error when parsing bad data. This will now give a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "DeprecationWarning"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " where previously partial or even invalid data was silently returned. This deprecation also affects the C defined functions "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PyArray_FromString"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PyArray_FromFile"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-13605"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/13605",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.fromfile"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.fromstring"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " will error on bad data"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Setting a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "MaskedArray.fill_value"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to a non-scalar array is deprecated since the logic to broadcast the fill value to the array is fragile, especially when slicing. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-13698"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/13698",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecate non-scalar arrays as fill values in "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "ma.fill_value"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PyArray_As1D"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PyArray_As2D"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " are deprecated, use "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "PyArray_AsCArray"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instead ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14036"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14036",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecate "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "PyArray_As1D"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": ", "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "PyArray_As2D"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.alen"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " was deprecated. Use "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "len"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instead. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14181"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14181",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecate "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.alen"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "In accordance with "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "NEP-32"
                }
              ],
              "url": "https://numpy.org/neps/nep-0032-remove-financial-functions.html",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", the financial functions "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "fv"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ipmt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "irr"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "mirr"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "nper"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "npv"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "pmt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ppmt"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "pv"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "rate"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " are deprecated, and will be removed from NumPy 1.20.The replacement for these functions is the Python package "
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "numpy-financial"
                }
              ],
              "url": "https://pypi.org/project/numpy-financial",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14720"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14720",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Deprecate the financial functions"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "This argument was always ignored. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14996"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14996",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "The "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "axis"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " argument to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.ma.mask_cols"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.ma.mask_row"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " is deprecated"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "BulletList",
          "__tag": 4053,
          "ordered": false,
          "start": 1,
          "children": [
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_As1D"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_As2D"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " have been removed in favor of   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_AsCArray"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14036"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14036",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.rank"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been removed. This was deprecated in NumPy 1.10   and has been replaced by "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.ndim"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ".   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14039"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14039",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "The deprecation of "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "expand_dims"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " out-of-range axes in 1.13.0 has   expired.   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14051"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14051",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_FromDimsAndDataAndDescr"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_FromDims"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " have been   removed (they will always raise an error). Use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_NewFromDescr"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   and "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "PyArray_SimpleNew"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead.   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14100"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14100",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numeric.loads"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numeric.load"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.ma.dump"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ",   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.ma.dumps"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.ma.load"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.ma.loads"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " are removed,   use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "pickle"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " methods instead   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14256"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14256",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "arrayprint.FloatFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "arrayprint.LongFloatFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been removed,   use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "FloatingFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "arrayprint.ComplexFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ", "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "arrayprint.LongComplexFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been   removed, use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "ComplexFloatingFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "arrayprint.StructureFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been removed, use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "StructureVoidFormat"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   instead   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14259"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14259",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.testing.rand"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been removed. This was deprecated in NumPy 1.11   and has been replaced by "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.random.rand"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ".   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14325"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14325",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Class "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "SafeEval"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " in "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "numpy/lib/utils.py"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " has been removed.   This was deprecated in NumPy 1.10. Use "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.safe_eval"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " instead.   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14335"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14335",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Remove deprecated support for boolean and empty condition lists in   "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "np.select"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14583"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14583",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "Array order only accepts 'C', 'F', 'A', and 'K'. More permissive options   were deprecated in NumPy 1.11.   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14596"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14596",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "np.linspace parameter "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "num"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " must be an integer. Deprecated in NumPy 1.12.   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14620"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14620",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            },
            {
              "__type": "ListItem",
              "__tag": 4054,
              "children": [
                {
                  "__type": "Paragraph",
                  "__tag": 4045,
                  "children": [
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": "UFuncs with multiple outputs must use a tuple for the "
                    },
                    {
                      "__type": "InlineCode",
                      "__tag": 4051,
                      "value": "out"
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": " kwarg. This   finishes a deprecation started in NumPy 1.10.   ("
                    },
                    {
                      "__type": "Link",
                      "__tag": 4049,
                      "children": [
                        {
                          "__type": "Text",
                          "__tag": 4046,
                          "value": "gh-14682"
                        }
                      ],
                      "url": "https://github.com/numpy/numpy/pull/14682",
                      "title": ""
                    },
                    {
                      "__type": "Text",
                      "__tag": 4046,
                      "value": ")"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The files "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy/testing/decorators.py"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy/testing/noseclasses.py"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy/testing/nosetester.py"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " have been removed.  They were never meant to be public (all relevant objects are present in the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.testing"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " namespace), and importing them has given a deprecation warning since NumPy 1.15.0 ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14567"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14567",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Expired deprecations"
        }
      ],
      "level": 1,
      "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": "If "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "drop_fields"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is used to drop all fields, previously the array would be completely discarded and None returned. Now it returns an array of the same shape as the input, but with no fields. The old behavior can be retained with      "
            }
          ]
        },
        {
          "__type": "Code",
          "__tag": 4050,
          "value": "dropped_arr = drop_fields(arr, ['a', 'b'])\nif dropped_arr.dtype.names == ():\n    dropped_arr = None",
          "execution_status": null
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "converting the empty recarray to None ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14510"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14510",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineRole",
          "__tag": 4003,
          "value": "numpy.lib.recfunctions.drop_fields",
          "domain": null,
          "role": null,
          "inventory": null
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " can no longer return None"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.argmin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.argmax"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.min"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.max"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " will return "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NaT"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " if it exists in the array. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14717"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14717",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.argmin/argmax/min/max"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " returns "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "NaT"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " if it exists in array"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Previously this was "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "True"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " - however, this was inconsistent with "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "uint64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " not being safely castable to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "int64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and resulting in strange type resolution."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "If this impacts your code, cast "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "uint64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "int64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " first. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14718"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14718",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.can_cast(np.uint64, np.timedelta64, casting='safe')"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " is now "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "False"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "There was a bug in "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.random.Generator.integers"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " that caused biased sampling of 8 and 16 bit integer types. Fixing that bug has changed the output stream from what it was in previous releases. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14777"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14777",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Changed random variate stream from "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.random.Generator.integers"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.datetime('NaT')"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " should behave more like "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "float('Nan')"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". Add needed infrastructure so "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.isinf(a)"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.isnan(a)"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " will run on "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "datetime64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "timedelta64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " dtypes. Also added specific loops for "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fmin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fmax"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " that mask "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NaT"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". This may require adjustment to user- facing code. Specifically, code that either disallowed the calls to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.isinf"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.isnan"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or checked that they raised an exception will require adaptation, and code that mistakenly called "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fmax"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fmin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instead of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.maximum"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.minimum"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " respectively will require adjustment. This also affects "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.nanmax"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.nanmin"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14841"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14841",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add more ufunc loops for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "datetime64"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": ", "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "timedelta64"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "As part of the API cleanup, the submodules in "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.random"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "bit_generator"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "philox"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "pcg64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "sfc64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "common"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "generator"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "bounded_integers"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " were moved to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_bit_generator"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_philox"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_pcg64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_sfc64"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_common"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_generator"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_bounded_integers"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " respectively to indicate that they are not part of the public interface. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14608"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14608",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Moved modules in "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.random"
        }
      ],
      "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": "Previously this returned True for any datatype of itemsize 0, but now this returns false for the non-flexible datatype with itemsize 0, "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.dtype([])"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14393"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14393",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "PyDataType_ISUNSIZED(descr)"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " now returns False for structured datatypes"
        }
      ],
      "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": "Added a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy/__init__.pxd"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " file. It will be used for "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "cimport numpy"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-12284"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/12284",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add our own "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "*.pxd"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " cython import file"
        }
      ],
      "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.expand_dims"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "axis"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " keyword can now accept a tuple of axes.  Previously, "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "axis"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " was required to be an integer. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14051"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14051",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "A tuple of axes can now be input to "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "expand_dims"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Added support for 64-bit (ILP64) OpenBLAS. See "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "site.cfg.example"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for details. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-15012"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/15012",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Support for 64-bit OpenBLAS"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Allow specifying a file to load Fortran-to-C type map customizations from. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-15113"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/15113",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "--f2cmap"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " option to F2PY"
        }
      ],
      "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": "On any given platform, two of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.intc"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.int_"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.longlong"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " would previously appear indistinguishable through their "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "repr"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", despite their corresponding "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "dtype"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " having different properties. A similar problem existed for the unsigned counterparts to these types, and on some platforms for "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.double"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.longdouble"
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "These types now always print with a unique "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "__name__"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-10151"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/10151",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Different C numeric types of the same size have unique names"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "On N-d arrays, "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.argwhere"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " now always produces an array of shape "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "(n_non_zero, arr.ndim)"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", even when "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "arr.ndim == 0"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". Previously, the last axis would have a dimension of 1 in this case. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-13610"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/13610",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "argwhere"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " now produces a consistent result on 0d arrays"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Previously the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "random.permutation"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "random.shuffle"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " functions can only shuffle an array along the first axis; they now have a new argument "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "axis"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " which allows shuffle along a specified axis. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-13829"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/13829",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "axis"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " argument for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "random.permutation"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " and "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "random.shuffle"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "A "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "method"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " keyword argument is now available for "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.random.multivariate_normal"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " with possible values "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "{'svd', 'eigh', 'cholesky'}"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". To use it, write "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "np.random.multivariate_normal(..., method=<method>)"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14197"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14197",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "method"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " keyword argument for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.random.multivariate_normal"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Now "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fromstring"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " can read complex numbers. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14227"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14227",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add complex number support for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.fromstring"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Using "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "moveaxis"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " instead of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "swapaxes"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " in "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.unique"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", so that the ordering of axes except the axis in arguments will not be broken. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14255"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14255",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.unique"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " has consistent axes order when "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "axis"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " is not None"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Calling "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.matmul"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " where the output is a boolean array would fill the array with uint8 equivalents of the result, rather than 0/1. Now it forces the output to 0 or 1 ("
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NPY_TRUE"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " or "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NPY_FALSE"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "). ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14464"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14464",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.matmul"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " with boolean output now converts to boolean values"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "The implementation introduced in 1.17.0 had an incorrect check when determining whether to use the 32-bit path or the full 64-bit path that incorrectly redirected random integer generation with a high - low range of "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "2**32"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to the 64-bit generator. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14501"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14501",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.random.randint"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " produced incorrect value when the range was "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "2**32"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Now "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.fromfile"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " can read complex numbers. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14730"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14730",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add complex number support for "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.fromfile"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "GCC before version 5 requires the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "-std=c99"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " command line argument. Newer compilers automatically turn on C99 mode. The compiler setup code will automatically add the code if the compiler name has "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "gcc"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " in it. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14771"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14771",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "std=c99"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " added if compiler is named "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "gcc"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Changes"
        }
      ],
      "level": 1,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NaT"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " is now effectively treated as the largest integer for sorting purposes, so that it sorts to the end of arrays. This change is for consistency with "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NaN"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " sorting behavior. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-12658"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/12658",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ") ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-15068"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/15068",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "NaT"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " now sorts to the end of arrays"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Previously an incorrect "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "threshold"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " raised "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ValueError"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "; it now raises "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "TypeError"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for non-numeric types and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ValueError"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " for "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "nan"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " values. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-13899"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/13899",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Incorrect "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "threshold"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " in "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "np.set_printoptions"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " raises "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "TypeError"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " or "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "ValueError"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "A "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "UserWarning"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " will be emitted when saving an array via "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.save"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " with "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "metadata"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". Saving such an array may not preserve metadata, and if metadata is preserved, loading it will cause a "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "ValueError"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". This shortcoming in save and load will be addressed in a future release. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14142"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14142",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Warn when saving a dtype with metadata"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineRole",
              "__tag": 4003,
              "value": "numpy.distutils",
              "domain": null,
              "role": null,
              "inventory": null
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " has always overridden rather than appended to "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "LDFLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and other similar such environment variables for compiling Fortran extensions. Now the default behavior has changed to appending - which is the expected behavior in most situations.  To preserve the old (overwriting) behavior, set the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "NPY_DISTUTILS_APPEND_FLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " environment variable to 0.  This applies to: "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "LDFLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "F77FLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "F90FLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "FREEFLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "FOPT"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "FDEBUG"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ", and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "FFLAGS"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ". NumPy 1.16 and 1.17 gave build warnings in situations where this change in behavior would have affected the compile flags used. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14248"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14248",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.distutils"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " append behavior changed for LDFLAGS and similar"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.random.entropy"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " was added to the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.random"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " namespace in 1.17.0. It was meant to be a private c-extension module, but was exposed as public. It has been replaced by "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "numpy.random.SeedSequence"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " so the module was completely removed. ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14498"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14498",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Remove "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "numpy.random.entropy"
        },
        {
          "__type": "Text",
          "__tag": 4046,
          "value": " without a deprecation"
        }
      ],
      "level": 2,
      "target": null
    },
    {
      "__type": "Section",
      "__tag": 4015,
      "children": [
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Added two new configuration options. During the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "build_src"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " subcommand, as part of configuring NumPy, the files "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "_numpyconfig.h"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "config.h"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " are created by probing support for various runtime functions and routines. Previously, the very verbose compiler output during this stage clouded more important information. By default the output is silenced. Running "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "runtests.py --debug-info"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " will add "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "--verbose-cfg"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "build_src"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " subcommand,which will restore the previous behaviour."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "Adding "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "CFLAGS=-Werror"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to turn warnings into errors would trigger errors during the configuration. Now "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "runtests.py --warn-error"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " will add "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "--warn-error"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " to the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "build"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " subcommand, which will percolate to the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "build_ext"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " and "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "build_lib"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " subcommands. This will add the compiler flag to those stages and turn compiler warnings into errors while actually building NumPy itself, avoiding the "
            },
            {
              "__type": "InlineCode",
              "__tag": 4051,
              "value": "build_src"
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": " subcommand compiler calls."
            }
          ]
        },
        {
          "__type": "Paragraph",
          "__tag": 4045,
          "children": [
            {
              "__type": "Text",
              "__tag": 4046,
              "value": "("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14527"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14527",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ") ("
            },
            {
              "__type": "Link",
              "__tag": 4049,
              "children": [
                {
                  "__type": "Text",
                  "__tag": 4046,
                  "value": "gh-14518"
                }
              ],
              "url": "https://github.com/numpy/numpy/pull/14518",
              "title": ""
            },
            {
              "__type": "Text",
              "__tag": 4046,
              "value": ")"
            }
          ]
        }
      ],
      "title": [
        {
          "__type": "Text",
          "__tag": 4046,
          "value": "Add options to quiet build configuration and build with "
        },
        {
          "__type": "InlineCode",
          "__tag": 4051,
          "value": "-Werror"
        }
      ],
      "level": 2,
      "target": null
    }
  ],
  "local_refs": []
}