NumPy 1.26 中文文档(五十三)

2024-07-26 09:54:48 浏览数 (2)

原文:numpy.org/doc/

NumPy 治理

原文:numpy.org/doc/1.26/dev/governance/index.html

  • NumPy 项目治理和决策
    • 摘要
    • 项目情况
    • 治理
      • 社区基于共识的决策
      • 指导委员会
    • 机构合作伙伴和资金支持
    • 文档历史
    • 致谢
    • 许可证

如何为 NumPy 文档做出贡献

译文:numpy.org/doc/1.26/dev/howto-docs.html

本指南将帮助您决定要贡献什么,以及如何将其提交给官方 NumPy 文档。

文档团队会议

NumPy 社区已经确立了改进其文档的坚定目标。我们定期在 Zoom 上举行文档会议(日期在numpy-discussion 邮件列表上宣布),欢迎每个人参与。如果你有问题或需要有人指导你迈出第一步 - 我们很乐意帮助。 会议记录在hackmd.io上,存储在NumPy 存档存储库中。

需要什么

NumPy 文档已经详细涵盖了细节。 API 参考文档直接从代码中的docstrings生成,当构建文档时。尽管我们对用户公开的每个函数和类都有大致完整的参考文档,但是一些函数缺乏使用示例。

我们缺少的是更广泛范围的文档 - 教程,如何做以及解释。报告缺陷是另一种贡献的方式。 我们都在讨论。

贡献修复

我们渴望听到并修复文档缺陷。 但要解决最大的问题,我们最终不得不推迟或忽略一些错误报告。 以下是要解决的最佳缺陷。

首要任务是技术错误 - 缺少参数的文档字符串,函数/参数/方法的错误描述等。 其他“结构性”缺陷,如损坏的链接也优先处理。 所有这些修复都易于确认并放置。 如果你知道如何做,你可以提交一个拉取请求(PR)来修复,否则请提交一个问题。

拼写错误和拼写错误处于较低的层次; 我们乐意听到它们,但可能无法迅速修复。 这些也可以作为拉取请求或问题来处理。

显而易见的措辞错误(比如漏掉了“不”)属于拼写错误类别,但其他重新措辞 - 甚至是语法 - 需要判断,这提高了经营难度。 通过首先将修复作为问题呈现,了解一下情况。

一些在 C 扩展模块中定义的函数/对象,如 numpy.ndarray.transpose, numpy.array 等,在_add_newdocs.py中有其单独定义的文档字符串。

贡献新页面

你在使用我们文档时的挫败感是我们修复问题的最佳指南。

如果您撰写了一个缺失的文档,您就加入了开源的最前线,但仅仅告诉我们缺少了什么就是一项有意义的贡献。如果您想撰写文档,请向邮件列表征求意见和反馈。如果您想提醒我们有差距,请提出问题。参见此问题作为示例。

如果您正在寻找主题,我们的官方文档路线图是NumPy 增强提案(NEP),NEP 44 - 重组 NumPy 文档。它确定了我们文档需要帮助的领域,并列出了我们想要看到的几个补充内容,包括 Jupyter 笔记本。

文档框架

有写作有用文件的公式,四个公式几乎覆盖了所有内容。有四个公式是因为文档有四个类别——教程操作指南说明参考资料。认识到文档以这种方式划分是 Daniele Procida 及其Diátaxis Framework的洞察。当您开始撰写文档或提议文档时,请考虑它将属于这四种类型中的哪种。### NumPy 教程

除了 NumPy 源代码树中的文档之外,您还可以将内容以 Jupyter Notebook 格式提交到NumPy 教程页面。这套教程和教育材料旨在为 NumPy 项目提供高质量资源,既供自学使用,也供教学使用。这些资源是在单独的 GitHub 存储库numpy-tutorials中开发的,您可以在那里查看现有的笔记本,提出问题以建议新主题或提交自己的教程作为拉取请求。### 更多有关贡献的信息

如果英语不是您的母语,或者您只能提出初步草稿,不用担心。开源是一个社区的努力。尽力而为——我们将帮助解决问题。

图像和现实数据使文本更引人入胜和有力,但请确保您使用的内容具有适当的许可和可用性。同样,即使是艺术作品的初步构思也可以被他人打磨。

现在,NumPy 接受的唯一数据格式是其他 Python 科学库如 pandas、SciPy 或 Matplotlib 所使用的格式。我们正在开发一个包,可以接受更多格式;有关详情,请联系我们。

NumPy 文档保留在源代码树中。要将您的文档放入文档库,您必须下载该源代码树,构建它,并提交一个拉取请求。如果 GitHub 和拉取请求对您来说是新的,请查阅我们的贡献者指南。

我们使用的标记语言是 reStructuredText (rST),它比 Markdown 更为复杂。Sphinx 是许多 Python 项目用来构建和链接项目文档的工具,它会将 rST 转换为 HTML 和其他格式。想了解更多关于 rST 的信息,可以查看 Quick reStructuredText Guide 或 reStructuredText Primer。

间接贡献

如果你发现任何可以补充到 NumPy 文档的有用材料,请通过 提交 issue 告诉我们。

你不需要直接为 NumPy 做贡献也能有所贡献。如果你在自己的博客上写了一篇教程、创建了 YouTube 视频、或者在 Stack Overflow 等网站上回答了问题,那都算是你的贡献。

文档风格

用户文档
  • 总的来说,我们遵循 Google 开发者文档风格指南 来编写用户指南。
  • NumPy 风格适用于以下情况:
    • Google 没有相关指导,或者
    • 我们更喜欢不使用 Google 样式。

    我们当前的规则:

    • 我们将 index 词汇复数形式使用 indices,而不是 indexes,这遵循了 numpy.indices 的先例。
    • 为保持一致性,我们也将 matrix 复数形式使用 matrices
  • 未能被 NumPy 或 Google 规则充分解决的语法问题,由最新版 芝加哥手册中"语法和用法"一节决定。
  • 我们欢迎大家 报告 应该添加到 NumPy 风格规则中的案例。 ### 文档字符串

当将 Sphinx 与 NumPy 约定一起使用时,你应该使用 numpydoc 扩展,这样你的文档字符串就会被正确处理。例如,Sphinx 会从你的文档字符串中提取 Parameters 部分并将其转换为字段列表。使用 numpydoc 还能避免 Sphinx 在遇到 NumPy 文档字符串约定(如部分标题 -------------)时产生的 reStructuredText 错误,因为这些约定 Sphinx 并不会在文档字符串中预料到。

NumPy 文档可以从以下网站获取:

  • numpydoc on PyPI
  • numpydoc on GitHub

请注意,对于 NumPy 内部的文档,在示例开头无需执行 import numpy as np

请使用 numpydoc 格式标准,如他们的 示例所示。 ### 记录 C/C 代码

NumPy 使用Doxygen来解析特殊格式的 C/C 注释块。这生成 XML 文件,然后由Breathe转换为 RST,Sphinx 使用它。

完成文档化过程需要三个步骤

1.编写注释块

尽管目前仍未设置要遵循的注释样式,但由于与当前现有的非索引注释块的相似之处,Javadoc 比其他注释更受欢迎。

注意

请参阅“代码文档化”。

这就是 Javadoc 样式的效果

代码语言:javascript复制
/**
 * This a simple brief.
 *
 * And the details goes here.
 * Multi lines are welcome.
 *
 * @param  num  leave a comment for parameter num.
 * @param  str  leave a comment for the second parameter.
 * @return      leave a comment for the returned value.
 */
int doxy_javadoc_example(int num, const char *str); 

这就是它的呈现方式

代码语言:javascript复制
int doxy_javadoc_example(int num, const char *str)

这是一个简单的简短描述。

详细信息在这里。欢迎多行。

参数:

  • num – 为参数 num 添加注释。
  • str – 为第二个参数添加注释。

返回:

返回值添加注释。

对于行内注释,您可以使用三斜杠。例如

代码语言:javascript复制
/**
 *  Template to represent limbo numbers.
 *
 *  Specializations for integer types that are part of nowhere.
 *  It doesn't support with any real types.
 *
 *  @param Tp Type of the integer. Required to be an integer type.
 *  @param N  Number of elements.
*/
template<typename Tp, std::size_t N>
class DoxyLimbo {
 public:
    /// Default constructor. Initialize nothing.
    DoxyLimbo();
    /// Set Default behavior for copy the limbo.
    DoxyLimbo(const DoxyLimbo<Tp, N> &l);
    /// Returns the raw data for the limbo.
    const Tp *data();
 protected:
    Tp p_data[N]; ///< Example for inline comment.
}; 

这就是它的呈现方式

代码语言:javascript复制
template<typename Tp, std::size_t N> class DoxyLimbo

代表悬崖数字的模板。

无处不在的整数类型的特殊化。它不支持任何真实的类型。

参数 Tp:

整数类型。需要是整数类型。

参数 N:

元素数量。

公共函数

代码语言:javascript复制
DoxyLimbo()

默认构造函数。不初始化任何内容。

代码语言:javascript复制
DoxyLimbo(const <, > &l)

设置复制悬崖的默认行为。

代码语言:javascript复制
const *data()

返回悬崖的原始数据。

受保护的属性

代码语言:javascript复制
p_data[]

内联注释示例。

常见的 Doxygen 标签:

注意

更多标签/命令,请查看www.doxygen.nl/manual/commands.html

@brief

开始一个用作简短描述的段落。默认情况下,文档块的第一句自动被视为简短描述,因为在 doxygen 配置中启用了选项JAVADOC_AUTOBRIEF。

@details

就像@brief开始一个简短描述,@details开始详细描述。您还可以开始新段落(空行),然后不需要@details命令。

@param

为函数参数开始一个参数描述,后跟参数的描述。检查参数的存在,并在缺少或不在函数声明或定义中存在该(或任何其他)参数的文档时给出警告。

@return

开始为函数返回值描述。多个相邻的@return命令将合并为一个段落。当遇到空行或其他分段命令时,@return描述结束。

@code/@endcode

开始/结束一个代码块。代码块与普通文本不同。它被解释为源代码。

@rst/@endrst

开始/结束一个 reST 标记块。

示例

看以下示例

代码语言:javascript复制
/**
 * A comment block contains reST markup.
 * @rst
 * .. note::
 *
 *   Thanks to Breathe_, we were able to bring it to Doxygen_
 *
 * Some code example::
 *
 *   int example(int x) {
 *       return x * 2;
 *   }
 * @endrst
 */
void doxy_reST_example(void); 

这就是它的呈现方式

代码语言:javascript复制
void doxy_reST_example(void)

注释块包含 reST 标记。

一些代码示例:

代码语言:javascript复制
int example(int x) {
    return x * 2;
} 

注意

多亏了 Breathe,我们才能将其引入 Doxygen

2. 馈送 Doxygen

并非所有的头文件都会自动收集。你必须在 Doxygen 的子配置文件中添加所需的 C/C 头文件路径。

子配置文件的唯一名称为 .doxyfile,通常可以在包含有文档化头文件的目录附近找到。如果靠近(2 深度)你想添加的头文件的路径中没有配置文件,则需要创建一个新的配置文件。

子配置文件可以接受任何 Doxygen 配置选项,但不要覆盖或重新初始化任何配置选项,而只使用连接运算符 “ =”。例如:

代码语言:javascript复制
# to specify certain headers
INPUT  = @CUR_DIR/header1.h 
         @CUR_DIR/header2.h
# to add all headers in certain path
INPUT  = @CUR_DIR/to/headers
# to define certain macros
PREDEFINED  = C_MACRO(X)=X
# to enable certain branches
PREDEFINED  = NPY_HAVE_FEATURE 
              NPY_HAVE_FEATURE2 

注意

@CUR_DIR 是一个模板常量,返回子配置文件的当前目录路径。

3. 包含指令

Breathe 提供了广泛的自定义指令,允许将 Doxygen 生成的文档转换为 reST 文件。

注意

欲了解更多信息,请查看“指令与配置变量”

常见指令:

doxygenfunction

这个指令生成单个函数的适当输出。函数名在项目中必须是唯一的。

代码语言:javascript复制
.. doxygenfunction:: <function name>
    :outline:
    :no-link: 

查看 示例 以查看它的工作原理。

doxygenclass

这个指令生成单个类的适当输出。它接受标准项目、路径、大纲和无链接选项,还有成员、protected-members、private-members、undoc-members、membergroups 和 members-only 选项:

代码语言:javascript复制
.. doxygenclass:: <class name>
   :members: [...]
   :protected-members:
   :private-members:
   :undoc-members:
   :membergroups: ...
   :members-only:
   :outline:
   :no-link: 

查看 doxygenclass 文档 https://breathe.readthedocs.io/en/latest/class.html#class-example 获取更多详细信息并查看其工作原理。

doxygennamespace

这个指令生成命名空间内容的适当输出。它接受标准项目、路径、大纲和无链接选项,还有 content-only、members、protected-members、private-members 和 undoc-members 选项。要引用嵌套的命名空间,必须提供完整的命名空间路径,例如 foo::bar 表示 foo 命名空间内的 bar 命名空间。

代码语言:javascript复制
.. doxygennamespace:: <namespace>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link: 

查看 doxygennamespace 文档 获取更多详细信息并查看其工作原理。

doxygengroup

这个指令生成 Doxygen 组的适当输出。可以使用特定的 Doxygen 标记在源注释中声明 Doxygen 组,详见 doxygen 分组文档。

它接受标准项目、路径、大纲和无链接选项,还有 content-only、members、protected-members、private-members 和 undoc-members 选项。

代码语言:javascript复制
.. doxygengroup:: <group name>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link:
   :inner: 

了解更多细节并查看演示,请参阅doxygengroup 文档。

阅读文档

  • 技术写作领域的领先组织Write the Docs举办会议,提供学习资源,并运营一个 Slack 频道。
  • 谷歌的技术写作资源合集中写道:“每个工程师都是作家”,其中包括为开发人员提供规划和撰写文档的免费在线课程。
  • Software Carpentry(软件工程)的使命是教授研究人员软件知识。除了提供课程,该网站还解释了如何有效地展示思想。

文档团队会议

NumPy 社区已经确立了改进文档的明确目标。我们在 Zoom 上定期举行文档会议(会议日期在numpy-discussion 邮件列表上公布),欢迎大家参加。如果你有疑问或需要有人指导你的初步步骤,随时联系我们,我们很乐意帮助。会议记录保存在hackmd.io上,并存储在NumPy Archive 仓库中。

需要什么

NumPy 文档已经涵盖了详细内容。API 参考文档直接从代码中的文档字符串生成,当生成文档时(如何构建文档),它们会为用户展示每个函数和类的参考文档,但部分函数缺乏使用示例。

我们缺乏范围更广泛的文档 - 教程,操作说明和解释。报告缺陷是另一种贡献方式。我们都讨论。

贡献修复

我们渴望听到并修复文档缺陷。但是为了解决最大的问题,我们不得不推迟或忽视一些缺陷报告。以下是优先处理的最佳缺陷。

最重要的是技术错误 - 缺少参数的文档字符串,对函数/参数/方法的错误描述等。其他“结构性”缺陷(例如损坏的链接)也会被优先处理。所有这些修复都很容易确认并实施。如果您知道如何操作,请提交 pull 请求 (PR)进行修正;否则,请打开一个问题。

拼写错误和拼写错误居于更低的位置;我们欢迎了解这种错误,但可能无法及时修复。这些问题也可以作为 pull 请求或问题处理。

显而易见的用词错误(例如遗漏了“not”)属于拼写错误类别,但是其他的改写 - 甚至是语法上的改写 - 需要判断,这增加了难度。可以首先将修复作为问题发表,以试探反应。

一些函数/对象,如 numpy.ndarray.transpose、numpy.array 等,在 C 扩展模块中定义,其文档字符串在_add_newdocs.py中单独定义。

贡献新页面

您对我们文档的使用中的困扰是改进的最好指南。

如果您编写一份缺失的文档,您就加入了开源界的前线,但光是让我们知道缺了些什么就已经是一项有意义的贡献。如果您想编写一份文档,请通过邮件列表与我们进一步讨论想法和获取反馈。如果您想告诉我们有什么遗漏,请创建一个问题。你可以参考这个问题作为示例。

如果你在寻找话题,我们正式的文件路线图是一个NumPy Enhancement Proposal (NEP),NEP 44 - 重组 NumPy 文档。它确定了我们的文档需要帮助和我们想要看到的若干补充内容的领域,包括 Jupyter notebooks。

文档框架

有关编写有用文档的公式,有四个公式包含几乎所有内容。之所以有四个公式,是因为有四类文档 - 教程操作指南解释参考文献。文档被分成这种方式的洞察力归功于 Daniele Procida 及其Diátaxis Framework。当您开始编写或提议一份文档时,请考虑一下它将属于这四种类型中的哪一种。 ### NumPy 教程

除了包含在 NumPy 源代码树中的文档之外,您还可以将内容以 Jupyter Notebook 格式提交到NumPy Tutorials 页面。这套教程和教育材料旨在为 NumPy 项目提供高质量的资源,供自学和教授课程使用。这些资源是在一个单独的 GitHub 仓库 numpy-tutorials 中开发的,您可以查看现有的笔记本,提出问题以建议新主题,或者以拉取请求的方式提交自己的教程。 ### 关于贡献的更多信息

如果英语不是您的母语,或者您只能草拟出一个简略版本,不要担心。开源是一个社区的努力。尽力而为 - 我们会帮助修复问题。

图像和真实数据使文本更具吸引力和强大,但请确保您使用的内容具有适当的许可和可用性。在这方面,即使是一个粗略的艺术构思也可以由其他人润色。

目前,NumPy 只接受由其他 Python 科学库(如 pandas、SciPy 或 Matplotlib)使用的数据格式。我们正在开发一个可以接受更多格式的包;有关详细信息,请与我们联系。

NumPy 文档保存在源代码树中。要将您的文档添加到文档库中,您必须下载树状结构,构建它,然后提交拉取请求。如果 GitHub 和拉取请求对您来说是新的,请查看我们的 Contributor Guide。

我们的标记语言是 reStructuredText(rST),比 Markdown 更复杂。Sphinx 是许多 Python 项目用于构建和链接项目文档的工具,可将 rST 转换为 HTML 和其他格式。有关 rST 的更多信息,请参阅Quick reStructuredText Guide 或 reStructuredText Primer 文档框架

有写有用文档的公式,其中有四个公式几乎涵盖了所有内容。有四个公式是因为文档有四个分类 - 教程操作指南解释参考文献。文档的这种划分方式属于 Daniele Procida 及其Diátaxis Framework的见解。在开始编写文档或提出文档建议时,请考虑它将属于哪种类型。

NumPy 教程

除了 NumPy 源代码树中的文档之外,您还可以将内容以 Jupyter Notebook 格式提交到NumPy Tutorials页面。这组教程和教育材料旨在为 NumPy 项目提供高质量的资源,既可用于自学,也可用于授课。这些资源是在一个单独的 GitHub 存储库numpy-tutorials中开发的,您可以查看现有的笔记本,开启问题以建议新主题,或者提交您自己的教程作为拉取请求。

更多贡献内容

如果英语不是您的母语,或者只能提供初稿,不要担心。开源是一个社区的努力。尽力而为 - 我们会帮助解决问题的。

图片和现实数据使文本更具吸引力和影响力,但请确保您使用的内容具有适当的许可证并可供使用。同样,在设计艺术品时,即使有一个初步的想法,也可以由其他人进一步完善。

目前,NumPy 仅接受其他 Python 科学库(如 pandas、SciPy 或 Matplotlib)也使用的数据格式。我们正在开发一种可以接受更多格式的软件包;有关详细信息,请与我们联系。

NumPy 文档保存在源代码树中。要将您的文档添加到文档库中,您必须下载树状结构,构建它,然后提交拉取请求。如果 GitHub 和拉取请求对您来说是新的,请查看我们的 Contributor Guide。

我们的标记语言是比 Markdown 更精细的 reStructuredText(rST)。Sphinx,许多 Python 项目用于构建和链接项目文档的工具,将 rST 转换为 HTML 和其他格式。有关 rST 的更多信息,请参阅 快速 reStructuredText 指南 或 reStructuredText 入门

间接贡献

如果您找到外部资料对 NumPy 文档有用,请通过 提出问题 告诉我们。

要为 NumPy 做贡献,您不必在此处做贡献。如果您在博客上撰写教程、制作 YouTube 视频或在 Stack Overflow 和其他网站上回答问题,则表示您已经做出了贡献。

文档风格

用户文档
  • 通常,我们遵循Google 开发者文档样式指南 作为用户指南。
  • NumPy 样式适用于以下情况:
    • Google 没有指导,或
    • 我们更喜欢不使用 Google 样式

    我们当前的规则:

    • 我们将 index 复数形式为 indices 而不是 indexes ,遵循 numpy.indices 的先例。
    • 为了一致性,我们还将 matrix 复数形式为 matrices
  • 由 NumPy 或 Google 规则不足解决的语法问题由最新版本的 芝加哥风格手册 中的 “语法和用法” 部分决定。
  • 我们欢迎 报告 应添加到 NumPy 样式规则中的案例。### 文档字符串

当使用 Sphinx 与 NumPy 约定结合时,应使用 numpydoc 扩展,以便正确处理您的文档字符串。例如,Sphinx 将从您的文档字符串中提取 Parameters 部分并将其转换为字段列表。使用 numpydoc 还可以避免在遇到 NumPy 文档字符串约定时产生的 reStructuredText 错误,例如部分标题(例如 -------------),这是 Sphinx 不希望在文档字符串中找到的。

它可从以下位置获取:

  • numpydoc on PyPI
  • numpydoc on GitHub

请注意,对于 NumPy 内的文档,不需要在示例开头执行 import numpy as np

请使用 numpydoc 格式标准,如它们的 示例 中所示。### 记录 C/C 代码

NumPy 使用Doxygen来解析特殊格式的 C/C 注释块。这会生成 XML 文件,然后由Breathe转换为 RST,最后由 Sphinx 使用。

完成文档过程需要三个步骤

1. 编写注释块

尽管仍然没有设置要遵循的注释样式,但由于与当前现有的非索引注释块的相似之处,Javadoc 更可取。

注意

请参阅“文档化代码”。

这是 Javadoc 风格的样子

代码语言:javascript复制
/**
 * This a simple brief.
 *
 * And the details goes here.
 * Multi lines are welcome.
 *
 * @param  num  leave a comment for parameter num.
 * @param  str  leave a comment for the second parameter.
 * @return      leave a comment for the returned value.
 */
int doxy_javadoc_example(int num, const char *str); 

以及它的渲染方式

代码语言:javascript复制
int doxy_javadoc_example(int num, const char *str)

这是一个简单的简要。

详细信息在此处。多行欢迎。

参数:

  • num – 为参数 num 留下注释。
  • str – 为第二个参数留下注释。

返回:

为返回的值留下注释。

对于行注释,您可以使用三条正斜杠。例如

代码语言:javascript复制
/**
 *  Template to represent limbo numbers.
 *
 *  Specializations for integer types that are part of nowhere.
 *  It doesn't support with any real types.
 *
 *  @param Tp Type of the integer. Required to be an integer type.
 *  @param N  Number of elements.
*/
template<typename Tp, std::size_t N>
class DoxyLimbo {
 public:
    /// Default constructor. Initialize nothing.
    DoxyLimbo();
    /// Set Default behavior for copy the limbo.
    DoxyLimbo(const DoxyLimbo<Tp, N> &l);
    /// Returns the raw data for the limbo.
    const Tp *data();
 protected:
    Tp p_data[N]; ///< Example for inline comment.
}; 

以及它的渲染方式

代码语言:javascript复制
template<typename Tp, std::size_t N> class DoxyLimbo

表示盲目数字的模板。

整数类型的专业化,属于无处。它不支持任何实际类型。

Param Tp:

整数的类型。必须是整数类型。

Param N:

元素数量。

公共函数

代码语言:javascript复制
DoxyLimbo()

默认构造函数。什么也不初始化。

代码语言:javascript复制
DoxyLimbo(const <, > &l)

设置复制盲目的默认行为。

代码语言:javascript复制
const *data()

返回盲目的原始数据。

受保护的属性

代码语言:javascript复制
p_data[]

内联注释示例。

常见的 Doxygen 标签:

注意

如需更多标签/命令,请参阅www.doxygen.nl/manual/commands.html

@brief

开始用作简要描述的段落。默认情况下,文档块的第一句话会自动被视为简要描述,因为在 doxygen 配置中启用了选项JAVADOC_AUTOBRIEF。

@details

就像@brief开始一个简要描述一样,@details开始详细描述。您也可以开始一个新的段落(空行),然后不需要@details命令。

@param

开始一个函数参数的参数描述,参数名为,后跟参数的描述。检查参数的存在,并在函数声明或定义中缺少此(或任何其他)参数的文档时给出警告。

@return

为函数设置返回值描述。多个相邻的@return命令将合并为一个段落。当遇到空行或其他分段命令时,@return描述结束。

@code/@endcode

开始/结束一个代码块。代码块与普通文本有所不同。它被解释为源代码。

@rst/@endrst

开始/结束一个 reST 标记块。

示例

看下面的示例

代码语言:javascript复制
/**
 * A comment block contains reST markup.
 * @rst
 * .. note::
 *
 *   Thanks to Breathe_, we were able to bring it to Doxygen_
 *
 * Some code example::
 *
 *   int example(int x) {
 *       return x * 2;
 *   }
 * @endrst
 */
void doxy_reST_example(void); 

以及它的渲染方式

代码语言:javascript复制
void doxy_reST_example(void)

注释块包含 reST 标记。

一些代码示例:

代码语言:javascript复制
int example(int x) {
    return x * 2;
} 

注意

多亏了 Breathe,我们能够将其引入 Doxygen。

2. 引导 Doxygen

并非所有的头文件都会被自动收集。你必须在 Doxygen 的子配置文件中添加所需的 C/C 头文件路径。

子配置文件具有独特的名称.doxyfile,通常可以在包含文档头文件的目录附近找到。如果要添加的头文件所在路径(2 层深度)没有配置文件,就需要创建一个新的配置文件。

子配置文件可以接受任何 Doxygen 配置选项,但不应覆盖或重新初始化任何配置选项,而是只使用连接运算符“ =”。例如:

代码语言:javascript复制
# to specify certain headers
INPUT  = @CUR_DIR/header1.h 
         @CUR_DIR/header2.h
# to add all headers in certain path
INPUT  = @CUR_DIR/to/headers
# to define certain macros
PREDEFINED  = C_MACRO(X)=X
# to enable certain branches
PREDEFINED  = NPY_HAVE_FEATURE 
              NPY_HAVE_FEATURE2 

注意

@CUR_DIR 是一个模板常量,返回子配置文件的当前目录路径。

3. 包含指令

Breathe 提供了各种自定义指令,允许将 Doxygen 生成的文档转换为 reST 文件。

注意

欲获取更多信息,请查阅“指令和配置变量”

常见指令:

doxygenfunction

此指令生成单个函数的适当输出。项目中函数名必须唯一。

代码语言:javascript复制
.. doxygenfunction:: <function name>
    :outline:
    :no-link: 

查看 示例 以了解它的运作方式。

doxygenclass

此指令生成单个类的适当输出。它使用标准项目、路径、大纲和无链接选项,另外还有成员、受保护成员、私有成员、未记录成员、成员组和仅成员选项。

代码语言:javascript复制
.. doxygenclass:: <class name>
   :members: [...]
   :protected-members:
   :private-members:
   :undoc-members:
   :membergroups: ...
   :members-only:
   :outline:
   :no-link: 

了解 doxygenclass 文档 https://breathe.readthedocs.io/en/latest/class.html#class-example 以获取更多详细信息,并了解它的运作方式。

doxygennamespace

此指令生成命名空间内容的适当输出。它使用标准项目、路径、大纲和无链接选项,另外还有仅内容、成员、受保护成员、私有成员和未记录成员选项。要引用嵌套命名空间,必须提供完整的命名空间路径,例如 foo::bar 表示 foo 命名空间内的 bar 命名空间。

代码语言:javascript复制
.. doxygennamespace:: <namespace>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link: 

查看 doxygennamespace 文档 以获取更多详细信息,并了解它的运作方式。

doxygengroup

此指令生成适当输出以展示 Doxygen 组的内容。doxygen 组可以通过源注释中特定的 doxygen 标记进行声明,参见 doxygen 组织文档。

它使用标准项目、路径、大纲和无链接选项,另外还有仅内容、成员、受保护成员、私有成员和未记录成员选项。

代码语言:javascript复制
.. doxygengroup:: <group name>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link:
   :inner: 

查看doxygengroup 文档以获取更多详细信息并查看其实际操作。 ### 用户文档

  • 通常,我们遵循Google 开发者文档风格指南进行用户指南。
  • NumPy 风格适用于以下情况:
    • Google 没有指导,或者
    • 我们更喜欢不使用 Google 风格

    我们当前的规则:

    • 我们将index复数形式化为indices,而不是indexes,遵循numpy.indices的先例。
    • 为了保持一致性,我们也将matrix的复数形式化为matrices
  • 在 NumPy 或 Google 规则无法充分解决的语法问题将在最新版芝加哥风格手册“语法和用法”部分决定。
  • 我们欢迎被提醒应该添加到 NumPy 风格规则中的案例。
文档字符串

当将Sphinx与 NumPy 约定结合使用时,应使用numpydoc扩展,以使您的文档字符串被正确处理。例如,Sphinx 将从您的文档字符串中提取Parameters部分并将其转换为字段列表。使用numpydoc还将避免纯 Sphinx 在遇到像部分标题(如-------------)这样的 NumPy 文档字符串约定时产生的 reStructuredText 错误,这是 Sphinx 不希望在文档字符串中找到的。

可从以下网址获取:

  • PyPI 上的 numpydoc
  • GitHub 上的 numpydoc

请注意,在 NumPy 文档中,不需要在示例开头执行import numpy as np

请按照他们的numpydoc格式标准,如其示例所示。

C/C 代码文档化

NumPy 使用Doxygen来解析特殊格式的 C/C 注释块。这会生成 XML 文件,然后由Breathe转换为 RST,Sphinx 将使用它。

完成文档过程需要三个步骤

1. 编写评论块

尽管尚未设定注释风格以遵循,但由于与当前现有的非索引评论块相似,Javadoc 比其他风格更可取。

注意

请参阅“代码文档化”。

这就是 Javadoc 风格的样子

代码语言:javascript复制
/**
 * This a simple brief.
 *
 * And the details goes here.
 * Multi lines are welcome.
 *
 * @param  num  leave a comment for parameter num.
 * @param  str  leave a comment for the second parameter.
 * @return      leave a comment for the returned value.
 */
int doxy_javadoc_example(int num, const char *str); 

以下是呈现方式

代码语言:javascript复制
int doxy_javadoc_example(int num, const char *str)

这是一个简单的简介。

详细信息在这里。 欢迎多行输入。

参数:

  • num – 为参数 num 留下注释。
  • str – 为第二个参数添加注释。

返回:

为返回的值添加注释。

对于行注释,你可以使用三个正斜杠。例如

代码语言:javascript复制
/**
 *  Template to represent limbo numbers.
 *
 *  Specializations for integer types that are part of nowhere.
 *  It doesn't support with any real types.
 *
 *  @param Tp Type of the integer. Required to be an integer type.
 *  @param N  Number of elements.
*/
template<typename Tp, std::size_t N>
class DoxyLimbo {
 public:
    /// Default constructor. Initialize nothing.
    DoxyLimbo();
    /// Set Default behavior for copy the limbo.
    DoxyLimbo(const DoxyLimbo<Tp, N> &l);
    /// Returns the raw data for the limbo.
    const Tp *data();
 protected:
    Tp p_data[N]; ///< Example for inline comment.
}; 

以下是它的呈现方式

代码语言:javascript复制
template<typename Tp, std::size_t N> class DoxyLimbo

用于表示深渊数字的模板。

不支持任何真实类型的整数类型的特化。

参数 Tp:

整数的类型。 必须是一个整数类型。

参数 N:

元素的数量。

公共函数

代码语言:javascript复制
DoxyLimbo()

默认构造函数。不初始化任何内容。

代码语言:javascript复制
DoxyLimbo(const <, > &l)

设置复制深渊的默认行为。

代码语言:javascript复制
const *data()

返回深渊的原始数据。

受保护的属性

代码语言:javascript复制
p_data[]

行内注释的示例。

Doxygen 常用标签:

注意

更多标签/命令,请参阅www.doxygen.nl/manual/commands.html

@brief

开始一个作为简要描述的段落。默认情况下,文档块的第一句话会被自动视为简要描述,因为 Doxygen 配置中启用了选项JAVADOC_AUTOBRIEF。

@details

就像 @brief 开始简短的描述一样,@details 开始详细的描述。你也可以开始一个新的段落(空行),然后 @details 命令就不再需要了。

@param

开始一个函数参数的参数描述,参数名为,后面跟着参数的描述。会检查参数的存在性,如果函数声明或定义中缺少此(或任何其他)参数的文档,则会发出警告。

@return

开始一个函数的返回值描述。 多个相邻的 @return 命令会合并成一个段落。当遇到空行或其他部分命令时,@return 描述结束。

@code/@endcode

开始/结束一个代码块。代码块会与普通文本区别对待。它被解释为源代码。

@rst/@endrst

开始/结束一个 reST 标记块。

示例

请看以下示例

代码语言:javascript复制
/**
 * A comment block contains reST markup.
 * @rst
 * .. note::
 *
 *   Thanks to Breathe_, we were able to bring it to Doxygen_
 *
 * Some code example::
 *
 *   int example(int x) {
 *       return x * 2;
 *   }
 * @endrst
 */
void doxy_reST_example(void); 

以下是它的呈现方式

代码语言:javascript复制
void doxy_reST_example(void)

一个注释块包含 reST 标记。

一些代码示例:

代码语言:javascript复制
int example(int x) {
    return x * 2;
} 

注意

多亏了Breathe,我们才能将它带入Doxygen。

2. 为 Doxygen 提供信息

并非所有头文件都会被自动收集。您必须在 Doxygen 的子配置文件中添加所需的 C/C 头路径。

子配置文件的唯一名称是.doxyfile,您通常可以在包含文档头文件的目录附近找到它。如果您想添加的头文件所在的路径中没有配置文件,您需要创建一个新的配置文件。

子配置文件可以接受Doxygen的任何配置选项,但不会覆盖或重新初始化任何配置选项,只使用连接操作符“ =”。例如:

代码语言:javascript复制
# to specify certain headers
INPUT  = @CUR_DIR/header1.h 
         @CUR_DIR/header2.h
# to add all headers in certain path
INPUT  = @CUR_DIR/to/headers
# to define certain macros
PREDEFINED  = C_MACRO(X)=X
# to enable certain branches
PREDEFINED  = NPY_HAVE_FEATURE 
              NPY_HAVE_FEATURE2 

注意

@CUR_DIR 是一个模板常量,返回子配置文件的当前目录路径。

3. Inclusion directives

Breathe 提供了丰富的自定义指令,允许将Doxygen生成的文档转换为 reST 文件。

注意

更多信息,请查阅 “Directives & Config Variables”

常用指令:

doxygenfunction

此指令会为单个函数生成相应输出。函数名称在项目中必须是唯一的。

代码语言:javascript复制
.. doxygenfunction:: <function name>
    :outline:
    :no-link: 

请查阅 示例 以实际操作。

doxygenclass

此指令会为单个类生成相应输出。它接受标准项目、路径、大纲和无链接选项,以及 members、protected-members、private-members、undoc-members、membergroups 和 members-only 选项:

代码语言:javascript复制
.. doxygenclass:: <class name>
   :members: [...]
   :protected-members:
   :private-members:
   :undoc-members:
   :membergroups: ...
   :members-only:
   :outline:
   :no-link: 

请查阅 doxygenclass 文档 https://breathe.readthedocs.io/en/latest/class.html#class-example 以获取更多详细信息并实际操作。

doxygennamespace

此指令会为命名空间的内容生成相应输出。它接受标准项目、路径、大纲和无链接选项,以及 content-only、members、protected-members、private-members 和 undoc-members 选项。要引用嵌套命名空间,必须提供完整的命名空间路径,例如 foo::bar 表示 foo 命名空间内的 bar 命名空间。

代码语言:javascript复制
.. doxygennamespace:: <namespace>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link: 

请查阅 doxygennamespace 文档 以获取更多详细信息并实际操作。

doxygengroup

此指令会为 doxygen 组的内容生成相应输出。可以在源注释中使用特定的 doxygen 标记来声明 doxygen 组,详见 doxygen 分组文档。

它接受标准项目、路径、大纲和无链接选项,以及 content-only、members、protected-members、private-members 和 undoc-members 选项。

代码语言:javascript复制
.. doxygengroup:: <group name>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link:
   :inner: 

请查阅 doxygengroup 文档 以获取更多详细信息并实际操作。

1. Writing the comment blocks

虽然还没有设定要遵循的注释样式,但 Javadoc 与当前现有的非索引化注释块相似,因此更可取。

注意

请参阅 “Documenting the code”。

Javadoc 样式如下

代码语言:javascript复制
/**
 * This a simple brief.
 *
 * And the details goes here.
 * Multi lines are welcome.
 *
 * @param  num  leave a comment for parameter num.
 * @param  str  leave a comment for the second parameter.
 * @return      leave a comment for the returned value.
 */
int doxy_javadoc_example(int num, const char *str); 

以下是渲染效果

代码语言:javascript复制
int doxy_javadoc_example(int num, const char *str)

这是一个简单简介。

具体内容如下。支持多行。

参数:

  • num – 在参数 num 上留下注释。
  • str – 在第二个参数上留下注释。

返回:

在返回值上留下注释。

对于行注释,您可以使用三个正斜杠。例如

代码语言:javascript复制
/**
 *  Template to represent limbo numbers.
 *
 *  Specializations for integer types that are part of nowhere.
 *  It doesn't support with any real types.
 *
 *  @param Tp Type of the integer. Required to be an integer type.
 *  @param N  Number of elements.
*/
template<typename Tp, std::size_t N>
class DoxyLimbo {
 public:
    /// Default constructor. Initialize nothing.
    DoxyLimbo();
    /// Set Default behavior for copy the limbo.
    DoxyLimbo(const DoxyLimbo<Tp, N> &l);
    /// Returns the raw data for the limbo.
    const Tp *data();
 protected:
    Tp p_data[N]; ///< Example for inline comment.
}; 

下面是如何呈现的

代码语言:javascript复制
template<typename Tp, std::size_t N> class DoxyLimbo

表示 limbo 数字的模板。

针对不存在任何实际类型的整数类型的特化。它不支持任何真实类型。

参数 Tp:

整数的类型。必须是整数类型。

参数 N:

元素的数量。

公共函数

代码语言:javascript复制
DoxyLimbo()

默认构造函数。不初始化任何内容。

代码语言:javascript复制
DoxyLimbo(const <, > &l)

设置将 limbo 复制的默认行为。

代码语言:javascript复制
const *data()

返回 limbo 的原始数据。

保护属性

代码语言:javascript复制
p_data[]

行内注释示例。

常见的 Doxygen 标签:

注意

更多标签/命令,请参考www.doxygen.nl/manual/commands.html

@brief

开始作为简要描述的段落。默认情况下,文档块的第一句被自动视为简要描述,因为在 Doxygen 配置中启用了JAVADOC_AUTOBRIEF选项。

@details

就像@brief开始一个简要描述一样,@details开始详细描述。您也可以开始一个新段落(空行),然后不需要@details命令。

@param

开始函数参数的参数描述,后跟参数的描述。检查参数的存在性,如果缺少参数的文档或未在函数声明或定义中出现,则会发出警告。

@return

开始函数的返回值描述。多个相邻的@return命令将被合并成一个段落。当遇到空行或其他分段命令时,@return描述结束。

@code/@endcode

开始/结束代码块。代码块被视为源代码而非普通文本。

@rst/@endrst

开始/结束 reST 标记块。

示例

看以下示例

代码语言:javascript复制
/**
 * A comment block contains reST markup.
 * @rst
 * .. note::
 *
 *   Thanks to Breathe_, we were able to bring it to Doxygen_
 *
 * Some code example::
 *
 *   int example(int x) {
 *       return x * 2;
 *   }
 * @endrst
 */
void doxy_reST_example(void); 

下面是如何呈现的

代码语言:javascript复制
void doxy_reST_example(void)

一个注释块包含 reST 标记。

一些代码示例:

代码语言:javascript复制
int example(int x) {
    return x * 2;
} 

注意

由于Breathe的帮助,我们将其引入了Doxygen。

常见的 Doxygen 标签:

注意

更多标签/命令,请参考www.doxygen.nl/manual/commands.html

@brief

开始作为简要描述的段落。默认情况下,文档块的第一句被自动视为简要描述,因为在 Doxygen 配置中启用了JAVADOC_AUTOBRIEF选项。

@details

就像@brief开始一个简要描述一样,@details开始详细描述。您也可以开始一个新段落(空行),然后不需要@details命令。

@param

开始函数参数描述,参数名为,后跟参数描述。会检查参数的存在,并且如果缺少此参数(或其他任何参数)的文档或在函数声明或定义中不存在,则会发出警告。

@return

开始函数返回值描述。多个相邻的 @return 命令将连接成一个段落。当遇到空行或其他分段命令时,@return 描述结束。

@code/@endcode

开始/结束一段代码。代码块与普通文本不同。它被解释为源代码。

@rst/@endrst

开始/结束一段 reST 标记。

示例

请看下面的示例

代码语言:javascript复制
/**
 * A comment block contains reST markup.
 * @rst
 * .. note::
 *
 *   Thanks to Breathe_, we were able to bring it to Doxygen_
 *
 * Some code example::
 *
 *   int example(int x) {
 *       return x * 2;
 *   }
 * @endrst
 */
void doxy_reST_example(void); 

以下是渲染的效果

代码语言:javascript复制
void doxy_reST_example(void)

注释块包含 reST 标记。

一些代码示例:

代码语言:javascript复制
int example(int x) {
    return x * 2;
} 

注意

多亏了Breathe,我们能够将其引入Doxygen

2. Doxygen 文档生成

并非所有标头文件都会自动收集。您必须在 Doxygen 的子配置文件中添加所需的 C/C 标头路径。

子配置文件具有唯一名称.doxyfile,您通常可以在包含文档化标头的目录附近找到它们。如果在您想要添加的标头所在的路径附近(2 层深度)找不到一个,则需要创建一个新的配置文件。

子配置文件可以接受任何Doxygen的配置选项,但不会覆盖或重新初始化任何配置选项,而只是使用连接运算符“ =”。例如:

代码语言:javascript复制
# to specify certain headers
INPUT  = @CUR_DIR/header1.h 
         @CUR_DIR/header2.h
# to add all headers in certain path
INPUT  = @CUR_DIR/to/headers
# to define certain macros
PREDEFINED  = C_MACRO(X)=X
# to enable certain branches
PREDEFINED  = NPY_HAVE_FEATURE 
              NPY_HAVE_FEATURE2 

注意

@CUR_DIR 是一个模板常量,返回子配置文件的当前目录路径。

3. 包含指令

Breathe提供了各种自定义指令,允许将Doxygen生成的文档转换为 reST 文件。

注意

更多信息,请查看“指令与配置变量”

常见指令:

doxygenfunction

此指令为单个函数生成适当的输出。项目中必须确保函数名唯一。

代码语言:javascript复制
.. doxygenfunction:: <function name>
    :outline:
    :no-link: 

查看示例以查看其运作方式。

doxygenclass

此指令生成单个类的适当输出。它接受标准项目、路径、大纲和无链接选项,另外还有成员、受保护成员、私有成员、未文档化成员、成员组和仅成员选项:

代码语言:javascript复制
.. doxygenclass:: <class name>
   :members: [...]
   :protected-members:
   :private-members:
   :undoc-members:
   :membergroups: ...
   :members-only:
   :outline:
   :no-link: 

查看 doxygenclass 文档 https://breathe.readthedocs.io/en/latest/class.html#class-example 以获取更多详情并查看其运作方式。

doxygennamespace

此指令用于生成命名空间的内容适当输出。它采用标准的项目、路径、大纲和无链接选项,并额外提供内容、成员、受保护的成员、私有成员和未记录的成员选项。要引用嵌套命名空间,必须提供完整的命名空间路径,例如 foo::bar 表示 foo 命名空间中的 bar 命名空间。

代码语言:javascript复制
.. doxygennamespace:: <namespace>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link: 

查看doxygennamespace 文档以获取更多详细信息并查看其实际应用。

doxygengroup

此指令用于生成 doxygen 组的内容适当输出。可以通过源代码注释中的特定 doxygen 标记声明 doxygen 组,详见 doxygen 的分组文档。

它采用标准的项目、路径、大纲和无链接选项,还额外提供内容、成员、受保护的成员、私有成员和未记录的成员选项。

代码语言:javascript复制
.. doxygengroup:: <group name>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link:
   :inner: 

查看doxygengroup 文档以获取更多详细信息并查看其实际应用。

常见指令:

doxygenfunction

此指令用于生成单个函数的适当输出。函数名在项目中必须是唯一的。

代码语言:javascript复制
.. doxygenfunction:: <function name>
    :outline:
    :no-link: 

查看示例以查看实际应用。

doxygenclass

此指令用于生成单个类的适当输出。它采用标准的项目、路径、大纲和无链接选项,并额外提供成员、受保护的成员、私有成员、未记录的成员、成员组和仅成员选项:

代码语言:javascript复制
.. doxygenclass:: <class name>
   :members: [...]
   :protected-members:
   :private-members:
   :undoc-members:
   :membergroups: ...
   :members-only:
   :outline:
   :no-link: 

查看*doxygenclass 文档https://breathe.readthedocs.io/en/latest/class.html#class-example_*以获取更多详细信息并查看其实际应用。

doxygennamespace

此指令用于生成命名空间的内容适当输出。它采用标准的项目、路径、大纲和无链接选项,并额外提供内容、成员、受保护的成员、私有成员和未记录的成员选项。要引用嵌套命名空间,必须提供完整的命名空间路径,例如 foo::bar 表示 foo 命名空间中的 bar 命名空间。

代码语言:javascript复制
.. doxygennamespace:: <namespace>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link: 

查看doxygennamespace 文档以获取更多详细信息并查看其实际应用。

doxygengroup

此指令用于生成 doxygen 组的内容适当输出。可以通过源代码注释中的特定 doxygen 标记声明 doxygen 组,详见 doxygen 的分组文档。

它采用标准的项目、路径、大纲和无链接选项,还额外提供内容、成员、受保护的成员、私有成员和未记录的成员选项。

代码语言:javascript复制
.. doxygengroup:: <group name>
   :content-only:
   :outline:
   :members:
   :protected-members:
   :private-members:
   :undoc-members:
   :no-link:
   :inner: 

查看doxygengroup 文档以获取更多详细信息并了解其运作方式。

文档阅读

  • 技术文档撰写领域的领先组织Write the Docs举办会议,提供学习资源,并管理一个 Slack 频道。
  • 谷歌的技术写作资源收藏表示:“每个工程师也是一名作家”,其中包括为开发人员规划和撰写文档提供的免费在线课程。
  • 软件工坊的使命是向研究人员教授软件。除了提供课程内容外,该网站还解释了如何有效地展示观点。

发布说明

原文:numpy.org/doc/1.26/release.html

  • 1.26.0
    • 新增功能
      • numpy.array_api 支持 Array API v2022.12
      • 支持更新的 Accelerate BLAS/LAPACK 库
      • f2pymeson 后端
      • f2pybind(c) 支持
    • 改进
      • f2py 支持 iso_c_binding
    • 构建系统变更
      • NumPy 特定的构建自定义化
      • 构建依赖
      • 故障排除
    • 贡献者
    • 合并的拉取请求
  • 1.25.2
    • 贡献者
    • 合并的拉取请求
  • 1.25.1
    • 贡献者
    • 合并的拉取请求
  • 1.25.0
    • 弃用功能
    • 已过期的弃用功能
    • 兼容性说明
      • np.pad 使用 mode=wrap 填充将保持与原始数据的严格倍数
      • 移除了 Cython 的 long_tulong_t
      • axes 参数错误时,改变了错误消息和类型以获取 ufunc
      • 如果作为 where 使用,则定义 __array_ufunc__ 的数组类可以覆盖 ufuncs
      • 默认情况下,使用 NumPy C API 进行编译现在具有向后兼容性](release/1.25.0-notes.html#compiling-against-the-numpy-c-api-is-now-backwards-compatible-by-default)
    • 新增功能
      • np.einsum 现在可以接受 object dtype 的数组
      • 添加支持原地矩阵乘法
      • 添加了 NPY_ENABLE_CPU_FEATURES 环境变量
      • NumPy 现在拥有一个 np.exceptions 命名空间
      • np.linalg 函数返回 NamedTuples
      • np.char 中的字符串函数与 NEP 42 自定义 dtype 兼容
      • 可以从字符串抽象 DType 类创建字符串 DType 实例
      • 富士通 C/C 编译器现在受支持
      • 现在支持 SSL2
    • 改进
      • NDArrayOperatorsMixin 指定其没有 __slots__
      • 修复复数零的幂
      • 新的 DTypePromotionError
      • np.show_config 使用来自 Meson 的信息
      • 修复 np.ma.diff 在调用时不保留掩码的问题(使用参数 prepend/append)
      • Cython 中对 NumPy C-API 的错误处理已更正
      • 直接生成随机数生成器的能力
      • numpy.logspace 现在支持非标量 base 参数
      • np.ma.dot() 现在支持非 2d 数组
      • 在 repr 中显式显示 .npz 文件的键
      • NumPy 现在在 np.dtypes 中公开 DType 类
      • 在 .npy 或 .npz 文件中保存之前删除 dtype 元数据
      • numpy.lib.recfunctions.structured_to_unstructured 在更多情况下返回视图
      • 有符号和无符号整数始终正确比较
    • 性能改进和变更
      • AVX-512 启用处理器上的 np.argsort 更快
      • AVX-512 启用处理器上的 np.sort 更快
      • __array_function__ 机制现在更快
      • ufunc.at 的速度可能更快
      • NpzFile 上的成员测试更快
    • 更改
      • np.r_[] 和 np.c_[] 的某些标量值
      • 大多数 NumPy 函数都被封装为 C 调用
      • C 标准库的使用
  • 1.24.3
    • 贡献者
    • 已合并的拉取请求
  • 1.24.2
    • 贡献者
    • 已合并的拉取请求
  • 1.24.1
    • 贡献者
    • 已合并的拉取请求
  • 1.24.0
    • 弃用内容
      • 弃用 fastCopyAndTranspose 和 PyArray_CopyAndTranspose
      • Python 整数超出范围的转换
      • 弃用 msort
      • np.str0 和类似的现在已被弃用
    • 过时的弃用内容
    • 兼容性注意事项
      • array.fill(scalar) 可能行为略有不同
      • 子数组到对象的转换现在复制
      • 返回的数组遵循 dtype kwarg 对象的唯一性
      • DLPack 导出引发 BufferError
      • 不再在 GCC-6 上测试 NumPy 构建
    • 新功能
      • 多项式类添加了新属性 symbol
      • Fortran character 字符串的 F2PY 支持
      • 新函数 np.show_runtime
      • testing.assert_array_equalstrict 选项
      • np.unique现在新增了equal_nan参数
      • 对于numpy.stack,使用castingdtype关键字参数
      • 对于numpy.vstack,使用castingdtype关键字参数
      • 对于numpy.hstack,使用castingdtype关键字参数
      • 可更改单例 RandomState 底层的位生成器
      • np.void现在有一个dtype参数
    • 改进
      • F2PY 改进
      • IBM zSystems 矢量扩展设备(SIMD)
      • NumPy 现在在类型转换中报告浮点错误
      • F2PY 支持 value 属性
      • 为第三方 BitGenerators 添加 pickle 支持
      • arange()现在明确失败,带有dtype=str
      • numpy.typing协议现在可以在运行时进行检查
    • 性能改进和变更
      • 更快的np.isinnp.in1d的版本,适用于整数数组
      • 更快的比较运算符
    • 变更
      • 更好的整数除法溢出报告
      • masked_invalid现在原地修改掩码
      • nditer/NpyIter允许分配所有操作数
  • 1.23.5
    • 贡献者
    • 合并的拉取请求
  • 1.23.4
    • 贡献者
    • 合并的拉取请求
  • 1.23.3
    • 贡献者
    • 合并的拉取请求
  • 1.23.2
    • 贡献者
    • 合并的拉取请求
  • 1.23.1
    • 贡献者
    • 合并的拉取请求
  • 1.23.0
    • 新函数
    • 弃用
    • 已过时的弃用
    • 新功能
      • crackfortran 支持运算符和赋值重载
      • f2py 支持从派生类型语句中读取访问类型属性
      • genfromtxt 新增参数 ndmin
      • np.loadtxt 现在支持引号字符和单一转换函数
      • 更改到不同大小的 dtype 现在只需要最后一个轴连续
      • F2PY 的确定性输出文件](release/1.23.0-notes.html#deterministic-output-files-for-f2py)
      • averagekeepdims 参数
      • np.unique 新增参数 equal_nan
    • 兼容性注意事项
      • 1D np.linalg.norm 保留浮点输入类型,即使结果是标量
      • 结构化(void)dtype 升级和比较的变化
      • NPY_RELAXED_STRIDES_CHECKING 已被移除
      • np.loadtxt 已经有了几处变化
    • 改进
      • ndarray.__array_finalize__ 现在可调用
      • 添加对 VSX4/Power10 的支持
      • np.fromiter 现在接受对象和子数组
      • Math C 库特性检测现在使用正确的签名
      • np.kron 现在保留子类信息
    • 性能改进和更改
      • 更快的 np.loadtxt
      • 更快的约简运算符
      • 更快的 np.where
      • NumPy 标量的更快操作
      • 更快的 np.kron
  • 1.22.4
    • 贡献者
    • 合并的拉取请求
  • 1.22.3
    • 贡献者
    • 合并的拉取请求
  • 1.22.2
    • 贡献者
    • 合并的拉取请求
  • 1.22.1
    • 贡献者
    • 合并的拉取请求
  • 1.22.0
    • 已过期废弃
      • 已移除已废弃的数字风格 dtype 字符串
      • 在 npyio 中 loadsndfromtxtmafromtxt 的已过期废弃
    • 废弃
      • 在 mrecords 中使用 delimiter 而不是 delimitor 作为 kwarg
      • 已废弃将布尔 kth 值传递给 (arg-)partition
      • 已废弃 np.MachAr
    • 兼容性说明
      • Distutils 在 clang 上强制严格的浮点模型
      • 已移除复数类型的地板除法支持
      • numpy.vectorize 函数现在产生与基础函数相同的输出类
      • 不再支持 Python 3.7
      • 复数 dtype 的 str/repr 现在包含标点符号后的空格
      • PCG64DSXMPCG64 中修正了 advance
      • 改变生成随机 32 位浮点变量的方式
    • C API 变更
      • 掩码内部循环不再可以定制
      • 对未来 DType 和 UFunc API 进行实验性暴露
    • 新特性
      • NEP 49 配置分配器
      • 实施 NEP 47(采用数组 API 标准)
      • 从注释块生成 C/C API 参考文档现在可以实现
      • 通过 mypy 插件分配特定于平台的c_intp 精度
      • 增加 NEP 47 兼容的 dlpack 支持
      • numpy.argmin, numpy.argmax 现已添加keepdims 可选参数
      • bit_count 用于计算整数中 1 位的数量
      • ndimaxis 属性已添加到 numpy.AxisError
      • windows/arm64目标的初步支持
      • 增加对 LoongArch 的支持
      • 添加了.clang-format文件
      • is_integer 现在可用于 numpy.floatingnumpy.integer
      • Fortran 尺寸规范的符号解析器
      • ndarray, dtypenumber 现在可以在运行时进行下标化
    • 改进
      • ctypeslib.load_library 现在可以接受任何类似路径的对象
      • finfo中添加了 smallest_normalsmallest_subnormal 属性
      • numpy.linalg.qr 接受堆叠矩阵作为输入
      • numpy.fromregex现在接受os.PathLike的实现
      • quantilepercentile添加新方法
      • nan<x>函数添加了缺少的参数
      • 注释主要 Numpy 命名空间
      • 使用 AVX-512 优化向量化 umath 模块
      • OpenBLAS v0.3.18
  • 1.21.6
  • 1.21.5
    • 贡献者
    • 合并的拉取请求
  • 1.21.4
    • 贡献者
    • 合并的拉取请求
  • 1.21.3
    • 贡献者
    • 合并的拉取请求
  • 1.21.2
    • 贡献者
    • 合并的拉取请求
  • 1.21.1
    • 贡献者
    • 合并的拉取请求
  • 1.21.0
    • 新功能
      • 添加PCG64DXSM BitGenerator
    • 已过时的弃用内容
    • 弃用内容
      • .dtype属性必须返回dtype
      • numpy.convolvenumpy.correlate的不精确匹配已被弃用
      • np.typeDict已正式弃用
      • 在创建类似数组时将引发异常
      • 四个ndarray.ctypes方法已被弃用
    • 已过时的弃用内容
      • 移除已弃用的PolyBase和未使用的PolyErrorPolyDomainError
    • 兼容性说明
      • 通用函数中错误类型的更改
      • __array_ufunc__ 参数验证
      • __array_ufunc__ 和附加的位置参数
      • Generator.uniform 中验证输入值
      • 默认包含路径中移除了/usr/include路径
      • 用于dtype=...比较的更改
      • 在 ufuncs 中dtypesignature参数的更改
      • Ufunc signature=...dtype= 的泛化和 casting
      • Distutils 强制在 clang 上使用严格的浮点模型
    • C API 更改
      • 使用ufunc->type_resolver 和“type tuple”
    • 新功能
      • 为处理特定平台的 numpy.number 精度添加了一个 mypy 插件
      • 让 mypy 插件管理扩展精度的 numpy.number 子类
      • 用于打印浮点值的新min_digits参数
      • f2py 现在可以识别 Fortran 抽象接口块
      • BLAS 和 LAPACK 配置通过环境变量
      • ndarray 添加了一个可以在运行时使用的别名
    • 改进
      • numpy.unwrap 的任意period选项
      • np.unique 现在返回单个 NaN
      • 改进了 Generator.rayleighGenerator.geometric 的性能
      • 改进了占位符注释
    • 性能改进
      • 改进了 NumPy 数组整数除法的性能
      • 改进np.savenp.load的性能,适用于小数组
    • 变更
      • numpy.piecewise输出类现在与输入类匹配
      • 启用加速框架
  • 1.20.3
    • 贡献者
    • 合并的拉取请求
  • 1.20.2
    • 贡献者
    • 合并的拉取请求
  • 1.20.1
    • 亮点
    • 贡献者
    • 合并的拉取请求
  • 1.20.0
    • 新功能
      • random.Generator 类有一个新的permuted函数
      • sliding_window_view为 numpy 数组提供了滑动窗口视图
      • numpy.broadcast_shapes是一个新的面向用户的函数
    • 弃用内容
      • 使用np.int等内置类型的别名已被弃用
      • 向具有非可选形状参数的函数传递shape=None已被弃用
      • 即使索引结果为空,也将报告索引错误
      • modesearchside的不精确匹配已被弃用
      • 对* numpy.dual*的弃用
      • outerufunc.outer用于矩阵的已弃用
      • 进一步弃用数字样式类型
      • ndindexndincr方法已被弃用
      • 未定义__len____getitem__的 ArrayLike 对象
    • 未来变更
      • 无法使用子数组数据类型的数组
    • 过期的弃用功能
      • 已移除金融函数
    • 兼容性注释
      • 使用 isinstance(dtype, np.dtype) 而不是 type(dtype) is not np.dtype
      • axis=None 的情况下,连接中的相同类型强制转换
      • 当分配给数组时,NumPy 标量将被强制转换
      • 混合字符串和其他类型时,数组强制转换发生变化
      • 数组强制转换重组
      • numpy.broadcast_arrays的结果进行写操作将导出只读缓冲区
      • 类型字典中已删除了数字样式类型名称
      • operator.concat 函数现在对数组参数引发 TypeError
      • 从 ABCPolyBase 中删除了 nickname 属性
      • float->timedeltauint64->timedelta 的提升将引发 TypeError
      • 现在,numpy.genfromtxt 正确地解包结构化数组
      • mgridr_ 等在非默认精度输入下一致返回正确的输出
      • 具有不匹配形状的布尔数组索引现在会正确地给出IndexError
      • 转换错误中断迭代
      • f2py 生成的代码可能返回 Unicode 而不是字节字符串
      • __array_interface__["data"] 元组的第一个元素必须是整数
      • poly1d 尊重所有零参数的 dtype
      • swig 的 numpy.i 文件仅适用于 Python 3。
      • np.array 中发现虚类型
    • C API 更改
      • 修改了PyArray_DescrCheck
      • np.ndarraynp.void_的大小已更改
    • 新功能
      • numpy.allnumpy.any函数的where关键字参数
      • numpy函数meanstdvarwhere关键字参数
      • numpy.fft函数的norm=backwardforward关键字选项
      • NumPy 现在是有类型的
      • numpy.typing在运行时可访问
      • f2py 生成模块的新 __f2py_numpy_version__ 属性。
      • 可通过 runtests.py 运行mypy测试
      • 对用户定义的 BLAS/LAPACK 检测顺序的否定。
      • 允许将优化参数传递给 asv 构建
      • 现在支持 NVIDIA HPC SDK nvfortran 编译器
      • covcorrcoefdtype选项
    • 改进
      • 多项式的更改的字符串表示(__str__
      • 删除加速库作为候选 LAPACK 库
      • 包含多行对象的对象数组具有更易读的repr
      • Concatenate 支持提供输出 dtype
      • 线程安全的 f2py 回调函数
      • numpy.core.records.fromfile现在支持类文件对象
      • 在 AIX 上添加了 distutils 的 RPATH 支持
      • 使用命令行参数指定的 f90 编译器
      • 为 Cython 3.0 及更高版本添加 NumPy 声明
      • 使窗口函数完全对称
    • 性能改进和变更
      • 启用多平台 SIMD 编译优化
    • 变更
      • divmod(1., 0.)及相关函数行为变更
      • np.linspace在整数上现在使用向下取整
  • 1.19.5
    • 贡献者
    • 合并的拉取请求
  • 1.19.4
    • 贡献者
    • 合并的拉取请求
  • 1.19.3
    • 贡献者
    • 合并的拉取请求
  • 1.19.2
    • 改进
      • 为 Cython 3.0 及更高版本添加 NumPy 声明
    • 贡献者
    • 合并的拉取请求
  • 1.19.1
    • 贡献者
    • 合并的拉取请求
  • 1.19.0
    • 亮点
    • 已过时的弃用项
      • numpy.insertnumpy.delete现在不能在 0 维数组上传递轴
      • numpy.delete不再忽略越界索引
      • numpy.insertnumpy.delete不再接受非整数索引
      • numpy.delete不再将布尔索引转换为整数
    • 兼容性说明
      • numpy.random.Generator.dirichlet改变随机变量流
      • PyArray_ConvertToCommonType中的标量提升
      • 已弃用 Fasttake 和 fastputmask slots,并置为 NULL
      • np.ediff1dto_endto_begin 参数下的类型转换行为
      • 将空数组类对象转换为 NumPy 数组
      • 移除 multiarray.int_asbuffer
      • numpy.distutils.compat 已被移除
      • issubdtype 不再将 float 解释为 np.floating
      • 将标量的 round 输出结果与 Python 保持一致
      • numpy.ndarray 构造函数不再将 strides=() 解释为 strides=None
      • C 语言级别的字符串到日期时间的转换已更改
      • 使用小种子的 SeedSequence 不再与生成冲突
    • 弃用
      • 弃用对不规则输入自动使用 dtype=object
      • numpy.rec 的工厂函数中传递 shape=0 已被弃用
      • 弃用可能未使用的 C-API 函数
      • 转换特定类型为 dtype 已弃用
      • np.complexfloating 标量的 round 方法已被弃用
      • numpy.ndarray.tostring() 已被弃用,建议使用 tobytes()
    • C API 变更
      • API 函数中对 const 维度的更好支持
      • 为 UFunc 内部循环添加 const 修饰符
    • 新功能
      • numpy.frompyfunc 现在接受一个 identity 参数
      • np.str_ 标量现在支持缓冲区协议
      • numpy.copysubok 选项
      • numpy.linalg.multi_dot 现在接受一个 out 参数
      • numpy.count_nonzerokeepdims 参数
      • numpy.array_equalequal_nan 参数
    • 改进
    • 改进 CPU 特性的检测
      • 在 64 位平台上使用 64 位整数大小作为后备 lapack_lite 中的默认值](release/1.19.0-notes.html#use-64-bit-integer-size-on-64-bit-platforms-in-fallback-lapack-lite)
      • 当输入为 np.float64 时,使用 AVX512 内部实现 np.exp
      • 禁用 madvise hugepages 的能力
      • numpy.einsum 在下标列表中接受 NumPy int64 类型
      • np.logaddexp2.identity 被改为 -inf
    • 变化
      • 移除对 __array__ 的额外参数处理
      • numpy.random._bit_generator 移动到 numpy.random.bit_generator
      • 通过 pxd 文件提供对随机分布的 Cython 访问
      • 修复了 numpy.random.multivariate_normal 中的 eighcholesky 方法
      • 修复了 MT19937.jumped 中的跳转实现
  • 1.18.5
    • 贡献者
    • 已合并的拉取请求
  • 1.18.4
    • 贡献者
    • 已合并的拉取请求
  • 1.18.3
    • 亮点
    • 贡献者
    • 已合并的拉取请求
  • 1.18.2
    • 贡献者
    • 已合并的拉取请求
  • 1.18.1
    • 贡献者
    • 已合并的拉取请求
  • 1.18.0
    • 亮点
    • 新功能
      • numpy.random 中添加多变量超几何分布
    • 废弃功能
      • np.fromfilenp.fromstring 将在错误数据上报错
      • ma.fill_value 中废弃非标量数组作为填充值
      • 废弃 PyArray_As1DPyArray_As2D
      • 废弃 np.alen
      • 废弃金融函数
      • numpy.ma.mask_colsnumpy.ma.mask_rowaxis 参数已废弃
    • 过时的废弃功能
    • 兼容性说明
      • numpy.lib.recfunctions.drop_fields 不再返回 None
      • numpy.argmin/argmax/min/max 在数组存在 NaT 的情况下返回 NaT
      • np.can_cast(np.uint64, np.timedelta64, casting='safe') 现在为 False
      • numpy.random.Generator.integers 更改随机变量流
      • datetime64timedelta64 添加更多的 ufunc 循环
      • numpy.random 中的模块已移动
    • C API 变更
      • PyDataType_ISUNSIZED(descr) 现在对结构数据类型返回 False
    • 新增功能
      • 添加我们自己的 *.pxd cython 导入文件
      • 现在可以输入轴元组至 expand_dims
      • 支持 64 位 OpenBLAS
      • 向 F2PY 添加 --f2cmap 选项
    • 改进
      • 相同大小的不同 C 数值类型具有唯一名称
      • argwhere现在对 0d 数组产生一致的结果
      • random.permutationrandom.shuffle添加axis参数
      • np.random.multivariate_normalmethod关键字参数
      • numpy.fromstring添加复数支持
      • axis不为None时,numpy.unique具有一致的轴顺序
      • numpy.matmul的布尔输出现在转换为布尔值
      • 当范围为2**32时,numpy.random.randint产生了不正确的值](release/1.18.0-notes.html#numpy-random-randint-produced-incorrect-value-when-the-range-was-2-32)
      • numpy.fromfile添加复数支持
      • 如果编译器命名为gcc,则添加std=c99(release/1.18.0-notes.html#std-c99-added-if-compiler-is-named-gcc)
    • 更改
      • NaT现在在数组的末尾排序
      • np.set_printoptions中的不正确threshold引发TypeErrorValueError
      • 在保存带有元数据的 dtype 时发出警告
      • numpy.distutils对 LDFLAGS 和类似的值进行了更改](release/1.18.0-notes.html#numpy-distutils-append-behavior-changed-for-ldflags-and-similar)
      • 不经过弃用即删除numpy.random.entropy
      • 添加选项以安静地构建配置并使用-Werror构建
  • 1.17.5
    • 贡献者
    • 已合并的拉取请求
  • 1.17.4
    • 亮点
    • 贡献者
    • 已合并的拉取请求
  • 1.17.3
    • 亮点
    • 兼容性说明
    • 贡献者
    • 已合并的拉取请求
  • 1.17.2
    • 贡献者
    • 已合并的拉取请求
  • 1.17.1](release/1.17.1-notes.html)
    • 贡献者](release/1.17.1-notes.html#contributors)
    • 合并的拉取请求](release/1.17.1-notes.html#pull-requests-merged)
  • 1.17.0](release/1.17.0-notes.html)
    • 亮点](release/1.17.0-notes.html#highlights)
    • 新函数](release/1.17.0-notes.html#new-functions)
    • 弃用](release/1.17.0-notes.html#deprecations)
      • numpy.polynomial 函数中传递 float 时将发出警告](release/1.17.0-notes.html#numpy-polynomial-functions-warn-when-passed-float-in-place-of-int)
      • 弃用 numpy.distutils.exec_commandtemp_file_name](release/1.17.0-notes.html#deprecate-numpy-distutils-exec-command-and-temp-file-name)
      • 包装的 C-API 数组的可写标志](release/1.17.0-notes.html#writeable-flag-of-c-api-wrapped-arrays)
      • 不再允许在 0d 数组上调用 numpy.nonzero](release/1.17.0-notes.html#numpy-nonzero-should-no-longer-be-called-on-0d-arrays)
      • 写入 numpy.broadcast_arrays 的结果将发出警告](release/1.17.0-notes.html#writing-to-the-result-of-numpy-broadcast-arrays-will-warn)
    • 未来变更](release/1.17.0-notes.html#future-changes)
      • 未来版本中,dtype 中的 shape-1 字段将不会被折叠为标量](release/1.17.0-notes.html#shape-1-fields-in-dtypes-won-t-be-collapsed-to-scalars-in-a-future-version)
    • 兼容性说明](release/1.17.0-notes.html#compatibility-notes)
      • float16 亚正常值舍入](release/1.17.0-notes.html#float16-subnormal-rounding)
      • 使用 divmod 时的有符号零(Signed zero)现已解决](release/1.17.0-notes.html#signed-zero-when-using-divmod)
      • MaskedArray.mask 现在返回掩码的视图,而不是掩码本身
      • 不要在 numpy.frombuffer 中查找 __buffer__ 属性](release/1.17.0-notes.html#do-not-lookup-buffer-attribute-in-numpy-frombuffer)
      • take, choose, put 中覆盖缓冲区会发出警告](release/1.17.0-notes.html#out-is-buffered-for-memory-overlaps-in-take-choose-put)
      • 在加载时进行反向拆包需要明确的选择](release/1.17.0-notes.html#unpickling-while-loading-requires-explicit-opt-in)
      • 旧的随机模块中,可能会对随机流进行潜在变更](release/1.17.0-notes.html#potential-changes-to-the-random-stream-in-old-random-module)
      • i0 现在总是返回与输入相同形状的结果](release/1.17.0-notes.html#i0-now-always-returns-a-result-with-the-same-shape-as-the-input)
      • can_cast 不再假定所有的不安全转换都被允许](release/1.17.0-notes.html#can-cast-no-longer-assumes-all-unsafe-casting-is-allowed)
      • ndarray.flags.writeable 的标志位现在更频繁地被切换为真](release/1.17.0-notes.html#ndarray-flags-writeable-can-be-switched-to-true-slightly-more-often)
    • C API 变更](release/1.17.0-notes.html#c-api-changes)
      • npy_intp const* 现在会传递维度或步幅输入参数](release/1.17.0-notes.html#dimension-or-stride-input-arguments-are-now-passed-by-npy-intp-const)
    • 新特性
      • 新的可扩展的numpy.random模块,带有可选择的随机数生成器
      • libFLAME
      • 用户自定义 BLAS 检测顺序
      • 用户自定义 LAPACK 检测顺序
      • ufunc.reduce及相关函数现在接受一个where掩码
      • Timsort 和基数排序已取代 mergesort 用于稳定排序
      • packbitsunpackbits接受一个order关键字
      • unpackbits现在接受一个count参数
      • linalg.svdlinalg.pinv在厄米矩阵输入上可能更快
      • divmod 操作现在支持两个timedelta64操作数
      • fromfile现在带有一个offset参数
      • pad的新模式“empty”
      • empty_like及相关函数现在接受一个shape参数
      • 浮点数标量实现as_integer_ratio以匹配内置浮点数
      • 结构化dtype对象可以使用多个字段名称进行索引
      • .npy文件支持 Unicode 字段名称
    • 改进
      • 数组比较断言包括最大差异
      • 用 pocketfft 库替换基于 fftpack 的fft模块
      • numpy.ctypeslib中对ctypes支持进一步改进
      • numpy.errstate现在也是一个函数装饰器
      • numpy.expnumpy.log在 float32 实现中提速
      • 提高numpy.pad性能
      • numpy.interp更稳定地处理无限值
      • fromfiletofilendarray.dumpPathlib支持
      • 为 bool 和 int 类型提供了专门的isnanisinfisfiniteufuncs
      • isfinite支持datetime64timedelta64类型
      • nan_to_num添加了新的关键字
      • 由于分配过大的数组引起的MemoryErrors现在更具描述性
      • floorceiltrunc现在尊重内置魔术方法
      • quantile现在适用于fraction.Fractiondecimal.Decimal对象
      • matmul中支持对象数组
    • 变更
      • medianpercentile函数族不再对nan发出警告
      • timedelta64 % 0 的行为调整为返回NaT
      • NumPy 函数现在始终支持__array_function__覆盖
      • lib.recfunctions.structured_to_unstructured不会消除单字段视图。
      • clip现在在底层使用 ufunc
      • __array_interface__偏移现在按文档所述工作
      • force zip64标志中savezpickle协议设置为3
      • 用不存在的字段索引的结构化数组引发KeyError而不是ValueError
  • 1.16.6
    • 亮点
    • 新函数
      • 允许使用matmul (*@* operator)与对象数组一起使用。
    • 兼容性说明
      • 修复布尔类型在矩阵乘法(@ 操作符)中的回归问题
    • 改进
      • 数组比较断言包括最大差异
    • 贡献者
    • 合并的拉取请求
  • 1.16.5
    • 贡献者
    • 合并的拉取请求
  • 1.16.4
    • 新的废弃功能
      • C-API 封装数组的可写标志
    • 兼容性说明
      • 随机流的潜在更改
    • 更改
      • numpy.lib.recfunctions.structured_to_unstructured 不会压缩单字段视图
    • 贡献者
    • 合并的拉取请求
  • 1.16.3
    • 兼容性说明
      • 加载时解除封存需要显式选择
    • 改进
      • random.mvnormal中的协方差转换为双精度
    • 更改
      • __array_interface__ offset 现在按照文档工作
  • 1.16.2
    • 兼容性说明
      • 使用 divmod 时的有符号零
    • 贡献者
    • 合并的拉取请求
  • 1.16.1
    • 贡献者
    • 增强功能
    • 兼容性说明
    • 新功能
      • 现在支持两个timedelta64操作数的divmod操作
    • 改进
      • 进一步改进np.ctypeslib中的ctypes支持
      • 数组比较断言包括最大差异
    • 改动
      • timedelta64 % 0的行为已经调整为返回NaT
  • 1.16.0 版本
    • 亮点
    • 新的函数
    • 新的被废弃特性
    • 已过期的被废弃特性
    • 未来的改变
    • 兼容性注意事项
      • 在 Windows 上的 f2py 脚本
      • NaT 的比较
      • complex64/128 的对齐方式已更改
      • nd_grid 中 len 方法已移除
      • np.unravel_index 现在接受 shape 关键字参数
      • 多字段视图返回视图而不是副本
    • C API 改动
    • 新增功能
      • histogram添加了积分平方误差(ISE)估计器
      • np.loadtxt现在新增max_rows关键字参数
      • np.timedelta64操作数现在支持取模运算符
    • 改进
      • numpy 数组的无副本 pickling
      • 构建 shell 独立性
      • np.polynomial.Polynomial 类在 Jupyter 笔记本中以 LaTeX 形式呈现
      • randintchoice 现在可以用于空分布
      • linalg.lstsq, linalg.qr, 和 linalg.svd 现在可以使用空数组进行计算
      • 链异常以提供更好的错误消息对无效的 PEP3118 格式字符串进行异常处理
      • Einsum 优化路径更新和效率改进
      • numpy.anglenumpy.expand_dims 现在适用于 ndarray 子类
      • NPY_NO_DEPRECATED_API编译器警告抑制
      • np.diff添加了 kwargs prependappend
      • ARM 支持已更新
      • 附加到构建标志
      • 广义 ufunc 签名现在允许固定大小的维度
      • 广义 ufunc 签名现在允许灵活维度
      • np.clipclip 方法检查内存重叠
      • np.polyfit 中选项 cov 的新值 unscaled
      • 标量数值类型的详细文档字符串
      • __module__属性现在指向公共模块
      • 大内存分配标记为适用于透明巨大页
      • Alpine Linux(和其他 musl c 库发行版)支持
      • 加速np.block用于大数组
      • 为只读数组加速np.take
      • 更多函数支持类似路径的对象
      • 在归约过程中 ufunc 身份的更好行为
      • 从 ctypes 对象改进的转换
      • 一个新的ndpointer.contents成员
      • matmul现在是一个ufunc
      • linspacelogspacegeomspace的起始和停止数组
      • CI 扩展了其他服务
    • 变更
      • 比较 ufuncs 现在将引发错误,而不是返回未实现
      • 对于非数值数组,positive现在将引发弃用警告
      • NDArrayOperatorsMixin现在实现了矩阵乘法
      • np.polyfit中方差矩阵的缩放方式已更改
      • maximumminimum不再发出警告
      • Umath 和 multiarray c-extension 模块合并为单一模块
      • getfield有效性检查扩展
      • NumPy 函数现在支持__array_function__重载
      • 基于只读缓冲区的数组不可设置writeable
  • 1.15.4
    • 兼容性说明
    • 贡献者
    • 合并的 Pull 请求
  • 1.15.3
    • 兼容性说明
    • 贡献者
    • 合并的 Pull 请求
  • 1.15.2
    • 兼容性说明
    • 贡献者
    • 合并的 Pull 请求
  • 1.15.1
    • 兼容性说明
    • 贡献者
    • 合并的 Pull 请求
  • 1.15.0
    • 亮点
    • 新增函数
    • 弃用项
    • 未来变更
    • 兼容性说明
      • 编译的测试模块改名并私有化
      • np.savez 返回的NpzFile现在是collections.abc.Mapping
      • 在特定条件下,必须在上下文管理器中使用nditer
      • Numpy 已切换到使用 pytest 而不是 nose 进行测试(release/1.15.0-notes.html#numpy-has-switched-to-using-pytest-instead-of-nose-for-testing)
      • Numpy 不再使用 __array_interface__ctypes 进行修改(release/1.15.0-notes.html#numpy-no-longer-monkey-patches-ctypes-with-array-interface)
      • np.ma.notmasked_contiguousnp.ma.flatnotmasked_contiguous 总是返回列表(release/1.15.0-notes.html#np-ma-notmasked-contiguous-and-np-ma-flatnotmasked-contiguous-always-return-lists)
      • np.squeeze 恢复了不能处理 axis 参数的对象的旧行为(release/1.15.0-notes.html#np-squeeze-restores-old-behavior-of-objects-that-cannot-handle-an-axis-argument)
      • 无结构空数组的.item方法现在返回一个字节对象(release/1.15.0-notes.html#unstructured-void-array-s-item-method-now-returns-a-bytes-object)
      • copy.copycopy.deepcopy 不再将 masked 转换为数组(release/1.15.0-notes.html#copy-copy-and-copy-deepcopy-no-longer-turn-masked-into-an-array)
      • 结构化数组的多字段索引仍将返回一个副本(release/1.15.0-notes.html#multifield-indexing-of-structured-arrays-will-still-return-a-copy)
    • C API 更改(release/1.15.0-notes.html#c-api-changes)
      • 新函数npy_get_floatstatus_barriernpy_clear_floatstatus_barrier(release/1.15.0-notes.html#new-functions-npy-get-floatstatus-barrier-and-npy-clear-floatstatus-barrier)
      • PyArray_GetDTypeTransferFunction的更改(release/1.15.0-notes.html#changes-to-pyarray-getdtypetransferfunction)
    • 新功能(release/1.15.0-notes.html#new-features)
      • np.gcdnp.lcm ufuncs 已添加整数和对象类型
      • 支持 iOS 跨平台构建(release/1.15.0-notes.html#support-for-cross-platform-builds-for-ios)
      • np.intersect1d 添加了 return_indices 关键字(release/1.15.0-notes.html#return-indices-keyword-added-for-np-intersect1d)
      • np.quantilenp.nanquantile(release/1.15.0-notes.html#np-quantile-and-np-nanquantile)
      • 构建系统
    • 改进
      • np.einsum 的更新(release/1.15.0-notes.html#np-einsum-updates)
      • np.ufunc.reduce 和相关函数现在接受初始值
      • np.flip 可以在多个轴上操作(release/1.15.0-notes.html#np-flip-can-operate-over-multiple-axes)
      • histogramhistogramdd 函数已移动到 np.lib.histograms(release/1.15.0-notes.html#histogram-and-histogramdd-functions-have-moved-to-np-lib-histograms)
      • 当给定明确的区间时,histogram 将接受 NaN 值(release/1.15.0-notes.html#histogram-will-accept-nan-values-when-explicit-bins-are-given)
      • histogram 在给定明确的 bin 边界的情况下适用于日期时间类型
      • histogram “auto” 估计器更好地处理有限的方差
      • histogramhistogramdd 返回的边界现在与数据浮点类型匹配
      • histogramdd 允许在一部分轴上给出明确的范围
      • histogramddhistogram2d 的 normed 参数已更名
      • np.r_ 在 0d 数组上可用,而 np.ma.mr_np.ma.masked 上可用
      • np.ptp 接受 keepdims 参数和扩展的轴元组
      • MaskedArray.astype 现在与 ndarray.astype 相同
      • 在编译时启用 AVX2/AVX512
      • nan_to_num 在接收标量或 0d 输入时总是返回标量
      • np.flatnonzero 在可转换为 numpy 类型上起作用
      • np.interp 返回 numpy 标量而不是内置标量
      • 允许在 Python 2 中将 dtype 字段名称设置为 Unicode
      • 比较的 ufunc 可以接受 dtype=object,覆盖默认的 bool
      • sort 函数接受 kind='stable'
      • 不为原位累积做临时复制
      • linalg.matrix_power 现在可以处理矩阵堆栈
      • 对于多维数组,random.permutation 的性能提高
      • 广义的 ufuncs 现在接受 axesaxiskeepdims 参数
      • float128 值现在在 ppc 系统上正确打印出来](release/1.15.0-notes.html#float128-values-now-print-correctly-on-ppc-systems)
      • 新的 np.take_along_axisnp.put_along_axis 函数
  • 1.14.6
    • 贡献者
    • 合并的拉取请求
  • 1.14.5
    • 贡献者
    • 合并的拉取请求
  • 1.14.4
    • 贡献者
    • 合并的拉取请求
  • 1.14.3
    • 贡献者
    • 合并的拉取请求
  • 1.14.2
    • 贡献者
    • 合并的拉取请求
  • 1.14.1
    • 贡献者
    • 合并的拉取请求
  • 1.14.0
    • 亮点
    • 新函数
    • 弃用
    • 未来的变化
    • 兼容性说明
      • 视图的屏蔽数组的掩码也是视图,而不是副本](release/1.14.0-notes.html#the-mask-of-a-masked-array-view-is-also-a-view-rather-than-a-copy)
      • np.ma.masked 不再可写
      • np.ma 函数产生的 fill_value 发生了变化
      • a.flat.__array__()a 非连续时返回不可写数组
      • np.tensordot 现在在收缩零长度维度时返回零数组
      • numpy.testing 重新组织
      • np.asfarray 不再通过 dtype 参数接受非数据类型
      • 1D np.linalg.norm 保留浮点输入类型,甚至对于任意阶数
      • count_nonzero(arr, axis=()) 现在计算没有轴,而不是所有轴
      • test 目录添加了 __init__.py 文件
      • 在非结构化 void 数组上进行.astype(bool)现在对每个元素调用bool
      • MaskedArray.squeeze永远不会返回np.ma.masked
      • can_cast的第一个参数由from重命名为from_
      • isnat当传入错误类型时引发TypeError
      • dtype.__getitem__当传入错误类型时引发TypeError
      • 用户定义的类型现在需要实现__str____repr__
      • 许多对数组打印的更改,可通过新的“legacy”打印模式禁用
    • C API 更改
      • PyPy 兼容的UPDATEIFCOPY数组替代方案
    • 新功能
      • 文本 IO 函数的编码参数
      • 外部nose插件可被numpy.testing.Tester使用
      • parametrize装饰器添加到numpy.testing
      • chebinterpolate函数添加到numpy.polynomial.chebyshev
      • 支持在 Python 3 中读取 lzma 压缩的文本文件
      • sign选项添加到np.setprintoptionsnp.array2string
      • hermitian选项添加到np.linalg.matrix_rank
      • thresholdedgeitems选项添加到np.array2string
      • concatenatestack增加了一个out参数
      • 支持在 Windows 上使用 PGI flang 编译器
    • 改进
      • random.noncentral_f中的分子自由度只需为正值
      • 所有 np.einsum 变体释放了 GIL
      • np.einsum 函数将在可能时使用 BLAS 并默认优化
      • f2py 现在处理零维数组
      • numpy.distutils 现在支持同时使用 MSVC 和 mingw64-gfortran
      • np.linalg.pinv 现在适用于堆叠矩阵
      • numpy.save 将数据对齐到 64 字节而不是 16
      • NPZ 文件现在可以在不使用临时文件的情况下编写
      • 更好地支持空结构化和字符串类型
      • np.lib.financial 中支持 decimal.Decimal
      • 浮点打印现在使用 “dragon4” 算法以获取最短十进制表示
      • void 类型的元素现在以十六进制表示](release/1.14.0-notes.html#void-datatype-elements-are-now-printed-in-hex-notation)
      • void 数据类型的打印样式现在可以独立自定义
      • np.loadtxt 的内存使用量减少
    • 变更
      • 结构化数组的多字段索引/赋值
      • 整数和 Void 标量现在不受 np.set_string_function 影响
      • 0 维数组打印已更改,array2stringstyle 参数已弃用
      • 使用数组种子 RandomState 需要一个一维数组
      • MaskedArray 对象显示更有用的 repr
      • np.polynomial 类的 repr 更加明确
  • 1.13.3
    • 贡献者
    • 已合并的拉取请求
  • 1.13.2
    • 贡献者
    • 合并的拉取请求
  • 1.13.1
    • 合并的拉取请求
    • 贡献者
  • 1.13.0
    • 亮点
    • 新函数
    • 废弃
    • 未来变更
    • 构建系统更改
    • 兼容性说明
      • 错误类型变更
      • Tuple 对象数据类型
      • DeprecationWarning 转为错误
      • 未来警告变更行为
      • 数据类型现在始终为真
      • ndarray 子类中不再需要 __getslice____setslice__
      • 使用 ...(省略号)索引 MaskedArrays/常量现在返回 MaskedArray
    • C API 更改
      • 在空数组上的 GUfuncs 和 NpyIter 轴移除
      • PyArray_MapIterArrayCopyIfOverlap 添加到 NumPy C-API
    • 新特性
      • 添加 __array_ufunc__
      • 新的 positive 通用函数
      • 新的 divmod 通用函数
      • np.isnat 通用函数测试 NaT 特殊的日期时间和时间间隔值
      • np.heaviside 通用函数计算 Heaviside 函数
      • 使用 np.block 函数创建块数组
      • isin 函数,对 in1d 进行改进
      • 临时删节
      • uniqueaxes 参数
      • np.gradient 现在支持非均匀间隔的数据
      • apply_along_axis 中支持返回任意维度的数组
      • dtype添加.ndim属性以补充.shape的属性.ndim(维数).shape
      • Python 3.6 中的 tracemalloc 支持
      • NumPy 可以使用宽松步幅检查调试构建
    • 改进
      • 重叠输入的 ufunc 行为
      • 在 MinGW 中部分支持 64 位 f2py 扩展
      • packbitsunpackbits进行了性能改进
      • 修复了 PPC 长双精度浮点信息问题
      • ndarray子类的更好默认 repr
      • 更可靠的掩蔽数组比较
      • 具有布尔元素的 np.matrix 现在可以使用字符串语法创建
      • 更多linalg操作现在接受空向量和矩阵
      • 捆绑版本的 LAPACK 现在是 3.2.2
      • np.hypot.reducenp.logical_xorreduce在更多情况下允许
      • 对象数组的更好repr
    • 变更
      • 对掩蔽数组进行排序的argsort使用与sort相同的默认参数
      • average现在保留子类
      • array == Nonearray != None进行逐元素比较
      • np.equal, np.not_equal对对象数组忽略对象身份
      • 布尔索引的更改
      • np.random.multivariate_normal处理糟糕协方差矩阵的行为
      • assert_array_less现在比较np.inf-np.inf
      • assert_array_ 和屏蔽数组的 assert_equal 会隐藏更少的警告
      • memmap 对象中的 offset 属性值
      • np.realnp.imag 对于标量输入返回标量
      • 多项式方便类不能传递给 ufuncs
      • ufunc 的输出参数也可以是元组,对于 ufunc 方法也是如此
  • 1.12.1
    • 修复的错误
  • 1.12.0
    • 亮点
    • 不再支持
    • 添加的支持
    • 构���系统的变化
    • 不推荐使用
      • ndarray 对象的 data 属性的赋值
      • linspace 中 num 属性的 int 强制转换不安全
      • binary_repr 的位宽参数不足
    • 未来的变化
      • 对结构化数组的多字段操作
    • 兼容性说明
      • DeprecationWarning 的行为变为错误
      • FutureWarning 的行为变化
      • power** 对于整数的负指数会引发错误
      • 默认情况下放宽了步幅检查
      • np.percentile 的 “midpoint” 插值方法修复了精确索引的问题
      • keepdims 关键字参数传递给用户类方法
      • bitwise_and 的身份变化
      • 当未屏蔽的无效值出现时,ma.median 会发出警告并返回 nan
      • assert_almost_equal 更加一致
      • 测试期间警告的 NoseTester 行为](release/1.12.0-notes.html#nosetester-behaviour-of-warnings-during-testing)
      • assert_warnsdeprecated 修饰符更具体](release/1.12.0-notes.html#assert-warns-and-deprecated-decorator-more-specific)
      • C API
    • 新特性
      • 可写关键字参数 as_strided
      • rot90axes 关键字参数](release/1.12.0-notes.html#axes-keyword-argument-for-rot90)
      • 广义 flip
      • numpy.distutils 中的 BLIS 支持](release/1.12.0-notes.html#blis-support-in-numpy-distutils)
      • numpy/__init__.py 中运行特定于分发的检查的钩子](release/1.12.0-notes.html#hook-in-numpy-init-py-to-run-distribution-specific-checks)
      • 新的 nancumsumnancumprod 函数](release/1.12.0-notes.html#new-nanfunctions-nancumsum-and-nancumprod-added)
      • np.interp 现在可以插值复数值
      • 新增多项式求值函数 polyvalfromroots](release/1.12.0-notes.html#new-polynomial-evaluation-function-polyvalfromroots-added)
      • 新增数组创建函数 geomspace](release/1.12.0-notes.html#new-array-creation-function-geomspace-added)
      • 测试警告的新上下文管理器](release/1.12.0-notes.html#new-context-manager-for-testing-warnings)
      • 新增掩蔽数组函数 ma.convolvema.correlate](release/1.12.0-notes.html#new-masked-array-functions-ma-convolve-and-ma-correlate-added)
      • 新的 float_power ufunc](release/1.12.0-notes.html#new-float-power-ufunc)
      • np.loadtxt 现在支持单个整数作为 usecol 参数](release/1.12.0-notes.html#np-loadtxt-now-supports-a-single-integer-as-usecol-argument)
      • histogram 的改进自动化 bin 估计器](release/1.12.0-notes.html#improved-automated-bin-estimators-for-histogram)
      • np.roll 现在可以同时滚动多个轴
      • ndarrays 实现的 __complex__ 方法](release/1.12.0-notes.html#the-complex-method-has-been-implemented-for-the-ndarrays)
      • pathlib.Path 对象现在支持
      • np.finfo 新增 bits 属性
      • np.vectorize 新增 signature 参数
      • 对整数数组除法的 py3k 警告发出](release/1.12.0-notes.html#emit-py3kwarnings-for-division-of-integer-arrays)
      • numpy.sctypes 现在也包括 Python3 中的 bytes](release/1.12.0-notes.html#numpy-sctypes-now-includes-bytes-on-python3-too)
    • 改进
      • bitwise_and 的标识已更改](release/1.12.0-notes.html#id1)
      • 广义通用函数现在将解锁 GIL
      • np.fft 中的缓存现在总大小和项目数受限
      • 改进了对零宽度字符串/unicode 数据类型的处理
      • 用 AVX2 向量化的整数通用函数
      • np.einsum 中的操作顺序优化
      • 快速排序已更改为内省排序
      • ediff1d 改进了性能和子类处理
      • float16 数组的 ndarray.mean 的精度改进
    • 更改
      • 所有类似数组的方法现在在 fromnumeric.py 中使用关键字参数调用
      • 大多数情况下,np.memmap 对象的操作返回 numpy 数组
      • 警告的 stacklevel 增加了
  • 1.11.3
    • 对 maintenance/1.11.3 的贡献者
    • 已合并的拉取请求
  • 1.11.2
    • 已合并的拉取请求
  • 1.11.1
    • 已合并的修复
  • 1.11.0
    • 亮点
    • 构建系统更改
    • 未来变化
    • 兼容性注意事项
      • datetime64 改变
      • linalg.norm 返回类型更改
      • 多项式拟合更改
      • np.dot 现在引发 TypeError 而不是 ValueError
      • FutureWarning 更改行为
      • %// 运算符
      • C API
      • 旧式类的对象数据类型检测
    • 新特性
    • 改进
      • np.gradient现在支持axis参数
      • np.lexsort现在支持带有对象数据类型的数组
      • np.ma.core.MaskedArray现在支持order参数
      • 对遮蔽数组进行的内存和速度改进
      • ndarray.tofile现在在 Linux 上使用 fallocate
      • 形式为A.T @ AA @ A.T的操作的优化
      • np.testing.assert_warns现在可以作为上下文管理器使用
      • 对 np.random.shuffle 的速度改进
    • 变化
      • numpy.distutils中已删除对 Pyrex 的支持
      • np.broadcast现在可以使用单个参数调用
      • np.trace现在尊重数组子类
      • np.dot现在引发TypeError,而不是ValueError
      • linalg.norm返回类型更改
    • 弃用项
      • 以 Fortran 顺序的数组视图
      • 用于数组顺序的无效参数](release/1.11.0-notes.html#invalid-arguments-for-array-ordering)
      • testing命名空间中的随机数生成器
      • 在闭区间上生成随机整数
    • FutureWarnings
      • MaskedArray的切片/视图赋值
  • 1.10.4
    • 兼容性注意事项
    • 已解决问题
    • 合并的 PR
  • 1.10.3
  • 1.10.2
    • 兼容性注意事项
      • 放宽的步进检查不再是默认值
      • 修复numpy.i中的 swig bug
      • 弃用以 Fortran 顺序更改维度的视图
    • 修复的问题
    • 合并的 PR
    • 注释
  • 1.10.1
  • 1.10.0
    • 亮点
    • 不再支持
    • 未来的更改
    • 兼容性说明
      • 默认类型转换规则变化
      • numpy 版本字符串
      • 宽松的步幅检查
      • axis=0 之外的任何方向上的 1 维数组的连接会引发 IndexError
      • np.ravelnp.diagonalnp.diag 现在会保留子类型
      • rollaxisswapaxes 总是返回一个视图
      • nonzero 现在返回基本的 ndarrays
      • C API
      • recarray 字段返回类型
      • recarray 视图
      • ufunc 的 ‘out’ 关键字参数现在接受数组的元组
      • byte 数组索引现在会引发 IndexError
      • 包含带有数组的对象的掩码数组
      • 当遇到无效值时,中位数会发出警告并返回 nan
      • 从 numpy.ma.testutils 中可以使用的函数已经发生了改变
    • 新功能
      • 从 site.cfg 中读取额外标志
      • np.cbrt 用于计算实数浮点数的立方根
      • numpy.distutils 现在允许并行编译
      • genfromtxt 有一个新的 max_rows 参数
      • 用于调用数组广播的新函数 np.broadcast_to
      • 用于测试警告的新上下文管理器 clear_and_catch_warnings
      • cov有新的fweightsaweights参数
      • 支持 Python 3.5 的‘@’操作符
      • fft 函数的新参数norm
    • 改进
      • np.digitize使用二分搜索
      • np.poly现在将整数输入转换为浮点数
      • np.interp现在可以与周期函数一起使用
      • np.pad支持pad_widthconstant_values的更多输入类型
      • np.argmaxnp.argmin现在支持out参数
      • 检测并使用更多系统 C99 复杂函数](release/1.10.0-notes.html#more-system-c99-complex-functions-detected-and-used)
      • np.loadtxt支持由float.hex方法产生的字符串
      • np.isclose现在正确处理整数数据类型的最小值
      • np.allclose在内部使用np.isclose
      • np.genfromtxt现在正确处理大整数
      • np.load, np.save具有 pickle 向后兼容性标志
      • MaskedArray 支持更复杂的基类
    • 变更
      • dotblas 功能已移至 multiarray
      • 更严格地检查 gufunc 签名的一致性
      • np.einsum返回的视图可写入
      • np.argmin跳过 NaT 值
    • 弃用项
      • 涉及字符串或结构化数据类型的数组比较
      • SafeEval
      • alterdot, restoredot
      • pkgload, PackageLoader
      • corrcoef 的 bias, ddof 参数
      • dtype string representation changes
  • 1.9.2
    • Issues fixed
  • 1.9.1
    • Issues fixed
  • 1.9.0
    • Highlights
    • Dropped Support
    • Future Changes
    • Compatibility notes
      • The diagonal and diag functions return readonly views.
      • Special scalar float values don’t cause upcast to double anymore
      • Percentile output changes
      • ndarray.tofile exception type
      • Invalid fill value exceptions
      • Polynomial Classes no longer derived from PolyBase
      • Using numpy.random.binomial may change the RNG state vs. numpy < 1.9
      • Random seed enforced to be a 32 bit unsigned integer
      • Argmin and argmax out argument
      • Einsum
      • Indexing
      • Non-integer reduction axis indexes are deprecated
      • promote_types and string dtype
      • can_cast and string dtype
      • astype and string dtype
      • npyio.recfromcsv keyword arguments change
      • The doc/swig directory moved
      • The npy_3kcompat.h header changed
      • Negative indices in C-Api sq_item and sq_ass_item sequence methods
      • NDIter
      • zeros_like for string dtypes now returns empty strings
    • New Features
      • Percentile supports more interpolation options
      • 中位数和百分位数的广义轴支持
      • np.linspacenp.logspace添加了 dtype 参数
      • np.triunp.tril广播更加通用
      • tobytes方法的别名为tostring
      • 构建系统
      • 与 Python numbers 模块兼容性
      • np.vander添加了increasing参数
      • np.unique添加了unique_counts参数
      • nanfunctions 中对中位数和百分位数的支持
      • 添加了 NumpyVersion 类
      • 允许保存大量命名列的数组
      • np.cross支持全广播
    • 改进
      • 在某些情况下,求和具有更好的数值稳定性
      • 百分位数在以np.partition为基础的实现中实现
      • np.array性能提升
      • np.searchsorted性能提升
      • 可选减少 np.distutils 的冗长度
      • np.random.multivariate_normal中的协方差检查
      • 多项式类不再基于模板
      • 更多 GIL 释放
      • 支持对更复杂基类的 MaskedArray
      • C-API
    • 已废弃项
      • 重复序列的非整数标量
      • select输入项废弃
      • rank函数
      • 对象数组的相等比较
      • C-API
  • 1.8.2
    • 已修复的问题
  • 1.8.1
    • 修复的问题
    • 变化
      • NDIter
      • np.distutils 的可选减少冗余输出
    • 弃用项
      • C-API
  • 1.8.0
    • 亮点
    • 不再支持的功能
    • 未来的变化
    • 兼容性注意事项
      • NPY_RELAXED_STRIDES_CHECKING
      • 作为第二参数的非数组的二元操作
      • 使用 overwrite_inputmedian 函数只部分排序数组
      • financial.npv 的修复
      • 比较 NaN 数字时的运行时警告
    • 新功能
      • 堆叠数组上的线性代数支持
      • ufuncs 的原位 fancy 索引
      • 新函数 partitionargpartition
      • 新函数 nanmeannanvarnanstd
      • 新函数 fullfull_like
      • 大文件的 IO 兼容性
      • 与 OpenBLAS 的构建
      • 新常量
      • qr 的新模式
      • in1d 的新 invert 参数
      • 使用 np.newaxis 的高级索引
      • C-API
      • runtests.py
    • 改进
      • IO 性能提升
      • pad 的性能改进
      • isnanisinfisfinitebyteswap 的性能改进
      • 通过 SSE2 向量化的性能改进
      • median 的性能改进
      • 可重载操作数标志的 ufunc C-API
    • 变更
      • 一般内容
      • C-API 数组��加
      • C-API Ufunc 添加
      • C-API 开发者改进
    • 废弃功能
      • 一般内容
    • 作者
  • 1.7.2
    • 解决的问题
  • 1.7.1
    • 解决的问题
  • 1.7.0
    • 亮点
    • 兼容性说明
    • 新功能
      • Reduction UFuncs 广义 axis= 参数
      • Reduction UFuncs 新 keepdims= 参数
      • 日期时间支持
      • 用于打印数组的自定义格式化程序
      • 新函数 numpy.random.choice
      • 新函数 isclose
      • 多项式包的初步多维支持
      • 能够填充 n 维数组
      • searchsorted 的新参数
      • 构建系统
      • C API
    • 变更
      • 一般内容
      • 类型转换规则
    • 废弃功能
      • 一般内容
      • C-API
  • 1.6.2
    • 解决的问题
      • numpy.core
      • numpy.lib
      • numpy.distutils
      • numpy.random
    • 变更
      • numpy.f2py
      • numpy.poly
  • 1.6.1
    • 解决的问题
  • 1.6.0
    • 亮点
    • 新功能
      • 新的 16 位浮点类型
      • 新的迭代器
      • numpy.polynomial 中的 Legendre、Laguerre、Hermite、HermiteE 多项式
      • Fortran 中假定形状数组和 numpy.f2py 中 size 函数的支持
      • 其他新函数
    • 变更
      • 默认错误处理
      • numpy.distutils
      • numpy.testing
      • C API
    • 已弃用的功能
    • 移除的功能
      • numpy.fft
      • numpy.memmap
      • numpy.lib
      • numpy.ma
      • numpy.distutils
  • 1.5.0
    • 亮点
      • Python 3 兼容性
      • PEP 3118 兼容性
    • 新功能
      • 将复数转换为实数的警告
      • ndarrays 的 Dot 方法](release/1.5.0-notes.html#dot-method-for-ndarrays)
      • linalg.slogdet 函数
      • 新的标头
    • 变更
      • polynomial.polynomial
      • polynomial.chebyshev
      • 直方图
      • correlate
  • 1.4.0
    • 亮点
    • 新功能
      • ufuncs 的扩展数组包装机制
      • 自动检测向前不兼容性
      • 新的迭代器
      • 新的多项式支持
      • 新的 C API
      • 新的 ufuncs
      • 新的定义
      • 测试
      • 重用 npymath
      • 改进的集合操作
    • 改进
    • 被弃用的功能
    • 内部更改
      • 在有可用时使用 C99 复杂功能
      • 拆分多维数组和 umath 源代码
      • 独立编译
      • 独立核心数学库
  • 1.3.0
    • 亮点
      • Python 2.6 支持
      • 广义 ufuncs
      • 实验性 Windows 64 位支持
    • 新功能
      • 格式问题
      • max/min 中的 nan 处理
      • sign 中的 nan 处理
      • 新的 ufuncs
      • 掩码数组
      • Windows 上的 gfortran 支持
      • Windows 二进制文件的 arch 选项
    • 已弃用功能
      • 直方图
    • 文档更改
    • 新的 C API
      • 多维数组 API
      • Ufunc API
      • 新定义
      • 便携式 NAN、INFINITY 等…
    • 内部更改
      • numpy.core 数学配置翻新
      • umath 重构
      • 构建警告的改进
      • 独立核心数学库
      • CPU 架构检测

0 人点赞