原文:
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 库
-
f2py
的meson
后端 -
f2py
的bind(c)
支持
-
- 改进
f2py
支持iso_c_binding
- 构建系统变更
- NumPy 特定的构建自定义化
- 构建依赖
- 故障排除
- 贡献者
- 合并的拉取请求
- 新增功能
- 1.25.2
- 贡献者
- 合并的拉取请求
- 1.25.1
- 贡献者
- 合并的拉取请求
- 1.25.0
- 弃用功能
- 已过期的弃用功能
- 兼容性说明
-
np.pad
使用mode=wrap
填充将保持与原始数据的严格倍数 - 移除了 Cython 的
long_t
和ulong_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
上的成员测试更快
- AVX-512 启用处理器上的
- 更改
- 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_equal
的strict
选项 -
np.unique
现在新增了equal_nan
参数 - 对于
numpy.stack
,使用casting
和dtype
关键字参数 - 对于
numpy.vstack
,使用casting
和dtype
关键字参数 - 对于
numpy.hstack
,使用casting
和dtype
关键字参数 - 可更改单例 RandomState 底层的位生成器
-
np.void
现在有一个dtype
参数
- 多项式类添加了新属性
- 改进
- F2PY 改进
- IBM zSystems 矢量扩展设备(SIMD)
- NumPy 现在在类型转换中报告浮点错误
- F2PY 支持 value 属性
- 为第三方 BitGenerators 添加 pickle 支持
-
arange()
现在明确失败,带有dtype=str
-
numpy.typing
协议现在可以在运行时进行检查
- 性能改进和变更
- 更快的
np.isin
和np.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)
-
average
的keepdims
参数 -
np.unique
新增参数equal_nan
- 兼容性注意事项
- 1D
np.linalg.norm
保留浮点输入类型,即使结果是标量 - 结构化(void)dtype 升级和比较的变化
-
NPY_RELAXED_STRIDES_CHECKING
已被移除 -
np.loadtxt
已经有了几处变化
- 1D
- 改进
-
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 中
loads
、ndfromtxt
和mafromtxt
的已过期废弃
- 废弃
- 在 mrecords 中使用 delimiter 而不是 delimitor 作为 kwarg
- 已废弃将布尔
kth
值传递给 (arg-)partition - 已废弃
np.MachAr
类
- 兼容性说明
- Distutils 在 clang 上强制严格的浮点模型
- 已移除复数类型的地板除法支持
-
numpy.vectorize
函数现在产生与基础函数相同的输出类 - 不再支持 Python 3.7
- 复数 dtype 的 str/repr 现在包含标点符号后的空格
- 在
PCG64DSXM
和PCG64
中修正了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 位的数量 -
ndim
和axis
属性已添加到numpy.AxisError
- 对
windows/arm64
目标的初步支持 - 增加对 LoongArch 的支持
- 添加了
.clang-format
文件 -
is_integer
现在可用于numpy.floating
和numpy.integer
- Fortran 尺寸规范的符号解析器
-
ndarray
,dtype
和number
现在可以在运行时进行下标化
- 改进
-
ctypeslib.load_library
现在可以接受任何类似路径的对象 - 在
finfo
中添加了smallest_normal
和smallest_subnormal
属性 -
numpy.linalg.qr
接受堆叠矩阵作为输入 -
numpy.fromregex
现在接受os.PathLike
的实现 - 为
quantile
和percentile
添加新方法 -
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.convolve
和numpy.correlate
的不精确匹配已被弃用 -
np.typeDict
已正式弃用 - 在创建类似数组时将引发异常
- 四个
ndarray.ctypes
方法已被弃用
-
- 已过时的弃用内容
- 移除已弃用的
PolyBase
和未使用的PolyError
和PolyDomainError
- 移除已弃用的
- 兼容性说明
- 通用函数中错误类型的更改
-
__array_ufunc__
参数验证 -
__array_ufunc__
和附加的位置参数 - 在
Generator.uniform
中验证输入值 - 默认包含路径中移除了
/usr/include
路径 - 用于
dtype=...
比较的更改 - 在 ufuncs 中
dtype
和signature
参数的更改 - 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.rayleigh
和Generator.geometric
的性能 - 改进了占位符注释
-
- 性能改进
- 改进了 NumPy 数组整数除法的性能
- 改进
np.save
和np.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
是一个新的面向用户的函数
- random.Generator 类有一个新的
- 弃用内容
- 使用
np.int
等内置类型的别名已被弃用 - 向具有非可选形状参数的函数传递
shape=None
已被弃用 - 即使索引结果为空,也将报告索引错误
-
mode
和searchside
的不精确匹配已被弃用 - 对* numpy.dual*的弃用
-
outer
和ufunc.outer
用于矩阵的已弃用 - 进一步弃用数字样式类型
-
ndindex
的ndincr
方法已被弃用 - 未定义
__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->timedelta
和uint64->timedelta
的提升将引发 TypeError - 现在,
numpy.genfromtxt
正确地解包结构化数组 -
mgrid
、r_
等在非默认精度输入下一致返回正确的输出 - 具有不匹配形状的布尔数组索引现在会正确地给出
IndexError
- 转换错误中断迭代
- f2py 生成的代码可能返回 Unicode 而不是字节字符串
-
__array_interface__["data"]
元组的第一个元素必须是整数 -
poly1d
尊重所有零参数的 dtype - swig 的 numpy.i 文件仅适用于 Python 3。
- 在
np.array
中发现虚类型
- 使用
- C API 更改
- 修改了
PyArray_DescrCheck
宏 -
np.ndarray
和np.void_
的大小已更改
- 修改了
- 新功能
-
numpy.all
和numpy.any
函数的where
关键字参数 -
numpy
函数mean
、std
、var
的where
关键字参数 -
numpy.fft
函数的norm=backward
、forward
关键字选项 - NumPy 现在是有类型的
-
numpy.typing
在运行时可访问 - f2py 生成模块的新
__f2py_numpy_version__
属性。 - 可通过 runtests.py 运行
mypy
测试 - 对用户定义的 BLAS/LAPACK 检测顺序的否定。
- 允许将优化参数传递给 asv 构建
- 现在支持 NVIDIA HPC SDK nvfortran 编译器
-
cov
和corrcoef
的dtype
选项
-
- 改进
- 多项式的更改的字符串表示(
__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.insert
和numpy.delete
现在不能在 0 维数组上传递轴 -
numpy.delete
不再忽略越界索引 -
numpy.insert
和numpy.delete
不再接受非整数索引 -
numpy.delete
不再将布尔索引转换为整数
-
- 兼容性说明
- 从
numpy.random.Generator.dirichlet
改变随机变量流 -
PyArray_ConvertToCommonType
中的标量提升 - 已弃用 Fasttake 和 fastputmask slots,并置为 NULL
-
np.ediff1d
在to_end
和to_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 修饰符
- API 函数中对
- 新功能
-
numpy.frompyfunc
现在接受一个 identity 参数 -
np.str_
标量现在支持缓冲区协议 -
numpy.copy
的subok
选项 -
numpy.linalg.multi_dot
现在接受一个out
参数 -
numpy.count_nonzero
的keepdims
参数 -
numpy.array_equal
的equal_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
在下标列表中接受 NumPyint64
类型 -
np.logaddexp2.identity
被改为-inf
- 变化
- 移除对
__array__
的额外参数处理 -
numpy.random._bit_generator
移动到numpy.random.bit_generator
- 通过
pxd
文件提供对随机分布的 Cython 访问 - 修复了
numpy.random.multivariate_normal
中的eigh
和cholesky
方法 - 修复了
MT19937.jumped
中的跳转实现
- 移除对
- 1.18.5
- 贡献者
- 已合并的拉取请求
- 1.18.4
- 贡献者
- 已合并的拉取请求
- 1.18.3
- 亮点
- 贡献者
- 已合并的拉取请求
- 1.18.2
- 贡献者
- 已合并的拉取请求
- 1.18.1
- 贡献者
- 已合并的拉取请求
- 1.18.0
- 亮点
- 新功能
- 在
numpy.random
中添加多变量超几何分布
- 在
- 废弃功能
-
np.fromfile
和np.fromstring
将在错误数据上报错 - 在
ma.fill_value
中废弃非标量数组作为填充值 - 废弃
PyArray_As1D
、PyArray_As2D
- 废弃
np.alen
- 废弃金融函数
-
numpy.ma.mask_cols
和numpy.ma.mask_row
的axis
参数已废弃
-
- 过时的废弃功能
- 兼容性说明
-
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
更改随机变量流 - 为
datetime64
、timedelta64
添加更多的 ufunc 循环 -
numpy.random
中的模块已移动
-
- C API 变更
PyDataType_ISUNSIZED(descr)
现在对结构数据类型返回 False
- 新增功能
- 添加我们自己的
*.pxd
cython 导入文件 - 现在可以输入轴元组至
expand_dims
- 支持 64 位 OpenBLAS
- 向 F2PY 添加
--f2cmap
选项
- 添加我们自己的
- 改进
- 相同大小的不同 C 数值类型具有唯一名称
-
argwhere
现在对 0d 数组产生一致的结果 - 为
random.permutation
和random.shuffle
添加axis
参数 -
np.random.multivariate_normal
的method
关键字参数 - 为
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
引发TypeError
或ValueError
- 在保存带有元数据的 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_command
和temp_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 用于稳定排序
-
packbits
和unpackbits
接受一个order
关键字 -
unpackbits
现在接受一个count
参数 -
linalg.svd
和linalg.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.exp
和numpy.log
在 float32 实现中提速 - 提高
numpy.pad
性能 -
numpy.interp
更稳定地处理无限值 -
fromfile
,tofile和ndarray.dump
的Pathlib
支持 - 为 bool 和 int 类型提供了专门的
isnan
,isinf
和isfinite
ufuncs -
isfinite
支持datetime64
和timedelta64
类型 - 对
nan_to_num
添加了新的关键字 - 由于分配过大的数组引起的
MemoryErrors
现在更具描述性 -
floor
,ceil
和trunc
现在尊重内置魔术方法 -
quantile
现在适用于fraction.Fraction和decimal.Decimal
对象 - 在
matmul
中支持对象数组
- 变更
-
median
和percentile
函数族不再对nan
发出警告 -
timedelta64 % 0
的行为调整为返回NaT
- NumPy 函数现在始终支持
__array_function__
覆盖 -
lib.recfunctions.structured_to_unstructured
不会消除单字段视图。 -
clip
现在在底层使用 ufunc -
__array_interface__
偏移现在按文档所述工作 -
force zip64
标志中savez
的pickle
协议设置为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 形式呈现
-
randint
和choice
现在可以用于空分布 -
linalg.lstsq
,linalg.qr
, 和linalg.svd
现在可以使用空数组进行计算 - 链异常以提供更好的错误消息对无效的 PEP3118 格式字符串进行异常处理
- Einsum 优化路径更新和效率改进
-
numpy.angle
和numpy.expand_dims
现在适用于ndarray
子类 -
NPY_NO_DEPRECATED_API
编译器警告抑制 -
np.diff
添加了 kwargsprepend
和append
- ARM 支持已更新
- 附加到构建标志
- 广义 ufunc 签名现在允许固定大小的维度
- 广义 ufunc 签名现在允许灵活维度
-
np.clip
和clip
方法检查内存重叠 -
np.polyfit
中选项cov
的新值unscaled
- 标量数值类型的详细文档字符串
-
__module__
属性现在指向公共模块 - 大内存分配标记为适用于透明巨大页
- Alpine Linux(和其他 musl c 库发行版)支持
- 加速
np.block
用于大数组 - 为只读数组加速
np.take
- 更多函数支持类似路径的对象
- 在归约过程中 ufunc 身份的更好行为
- 从 ctypes 对象改进的转换
- 一个新的
ndpointer.contents
成员 -
matmul
现在是一个ufunc
-
linspace
,logspace
和geomspace
的起始和停止数组 - CI 扩展了其他服务
- 变更
- 比较 ufuncs 现在将引发错误,而不是返回未实现
- 对于非数值数组,
positive
现在将引发弃用警告 -
NDArrayOperatorsMixin
现在实现了矩阵乘法 -
np.polyfit
中方差矩阵的缩放方式已更改 -
maximum
和minimum
不再发出警告 - 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_contiguous
和np.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.copy
和copy.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_barrier
和npy_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.gcd
和np.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.quantile
和np.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) -
histogram
和histogramdd
函数已移动到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” 估计器更好地处理有限的方差 - histogram 和
histogramdd
返回的边界现在与数据浮点类型匹配 -
histogramdd
允许在一部分轴上给出明确的范围 -
histogramdd
和histogram2d
的 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 现在接受
axes
、axis
和keepdims
参数 -
float128
值现在在 ppc 系统上正确打印出来](release/1.15.0-notes.html#float128-values-now-print-correctly-on-ppc-systems) - 新的
np.take_along_axis
和np.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
数组替代方案
- PyPy 兼容的
- 新功能
- 文本 IO 函数的编码参数
- 外部
nose
插件可被numpy.testing.Tester
使用 -
parametrize
装饰器添加到numpy.testing
-
chebinterpolate
函数添加到numpy.polynomial.chebyshev
- 支持在 Python 3 中读取 lzma 压缩的文本文件
-
sign
选项添加到np.setprintoptions
和np.array2string
-
hermitian
选项添加到np.linalg.matrix_rank
-
threshold
和edgeitems
选项添加到np.array2string
-
concatenate
和stack
增加了一个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 维数组打印已更改,
array2string
的style
参数已弃用 - 使用数组种子
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
进行改进 - 临时删节
-
unique
的axes
参数 -
np.gradient
现在支持非均匀间隔的数据 - 在
apply_along_axis
中支持返回任意维度的数组 -
dtype
添加.ndim
属性以补充.shape
的属性.ndim
(维数).shape
- Python 3.6 中的 tracemalloc 支持
- NumPy 可以使用宽松步幅检查调试构建
- 添加
- 改进
- 重叠输入的 ufunc 行为
- 在 MinGW 中部分支持 64 位 f2py 扩展
- 对
packbits
和unpackbits
进行了性能改进 - 修复了 PPC 长双精度浮点信息问题
-
ndarray
子类的更好默认 repr - 更可靠的掩蔽数组比较
- 具有布尔元素的 np.matrix 现在可以使用字符串语法创建
- 更多
linalg
操作现在接受空向量和矩阵 - 捆绑版本的 LAPACK 现在是 3.2.2
-
np.hypot.reduce
和np.logical_xor
的reduce
在更多情况下允许 - 对象数组的更好
repr
- 变更
- 对掩蔽数组进行排序的
argsort
使用与sort
相同的默认参数 -
average
现在保留子类 -
array == None
和array != None
进行逐元素比较 -
np.equal, np.not_equal
对对象数组忽略对象身份 - 布尔索引的更改
-
np.random.multivariate_normal
处理糟糕协方差矩阵的行为 -
assert_array_less
现在比较np.inf
和-np.inf
-
assert_array_
和屏蔽数组的assert_equal
会隐藏更少的警告 -
memmap
对象中的offset
属性值 -
np.real
和np.imag
对于标量输入返回标量 - 多项式方便类不能传递给 ufuncs
- ufunc 的输出参数也可以是元组,对于 ufunc 方法也是如此
- 对掩蔽数组进行排序的
- 1.12.1
- 修复的错误
- 1.12.0
- 亮点
- 不再支持
- 添加的支持
- 构���系统的变化
- 不推荐使用
- ndarray 对象的
data
属性的赋值 -
linspace
中 num 属性的 int 强制转换不安全 -
binary_repr
的位宽参数不足
- ndarray 对象的
- 未来的变化
- 对结构化数组的多字段操作
- 兼容性说明
- 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_warns
和deprecated
修饰符更具体](release/1.12.0-notes.html#assert-warns-and-deprecated-decorator-more-specific) - C API
- 新特性
- 可写关键字参数
as_strided
-
rot90
的axes
关键字参数](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) - 新的
nancumsum
和nancumprod
函数](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.convolve
和ma.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 @ A
和A @ 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.ravel、np.diagonal 和 np.diag 现在会保留子类型
- rollaxis 和 swapaxes 总是返回一个视图
- 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有新的
fweights
和aweights
参数 - 支持 Python 3.5 的‘@’操作符
- fft 函数的新参数
norm
- 改进
- np.digitize使用二分搜索
- np.poly现在将整数输入转换为浮点数
- np.interp现在可以与周期函数一起使用
- np.pad支持
pad_width
和constant_values
的更多输入类型 - np.argmax和np.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
andsq_ass_item
sequence methods - NDIter
-
zeros_like
for string dtypes now returns empty strings
- New Features
- Percentile supports more interpolation options
- 中位数和百分位数的广义轴支持
-
np.linspace
和np.logspace
添加了 dtype 参数 -
np.triu
和np.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_input 的 median 函数只部分排序数组
- financial.npv 的修复
- 比较 NaN 数字时的运行时警告
- 新功能
- 堆叠数组上的线性代数支持
- ufuncs 的原位 fancy 索引
- 新函数 partition 和 argpartition
- 新函数 nanmean、nanvar 和 nanstd
- 新函数 full 和 full_like
- 大文件的 IO 兼容性
- 与 OpenBLAS 的构建
- 新常量
- qr 的新模式
- in1d 的新 invert 参数
- 使用 np.newaxis 的高级索引
- C-API
- runtests.py
- 改进
- IO 性能提升
- 对 pad 的性能改进
- isnan、isinf、isfinite 和 byteswap 的性能改进
- 通过 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 架构检测
- 亮点