附加文件
术语表
原文:
numpy.org/doc/1.26/glossary.html
(n,)
括号中跟着逗号的数字表示一个具有一个元素的元组。尾随逗号将一个元素元组与括号n区分开。
-1
-
在维度入口中,指示 NumPy 选择长度,以保持数组元素总数不变。
>>> np.arange(12).reshape(4, -1).shape (4, 3) -
在索引中,任何负值表示从右边进行索引。
…
一个省略号。
-
当索引数组时,缺失的轴简称为全切片。
>>> a = np.arange(24).reshape(2,3,4)>>> a[...].shape (2, 3, 4)>>> a[...,0].shape (2, 3)>>> a[0,...].shape (3, 4)>>> a[0,...,0].shape (3,)它最多可以使用一次;
a[...,0,...]会引发一个IndexError。 -
在打印输出中,NumPy 用
...替代大数组的中间元素。要查看整个数组,使用numpy.printoptions
:
Python 的切片操作符。在 ndarrays 中,切片可以应用于每个轴:
>>> a = np.arange(24).reshape(2,3,4)
>>> a
array([[[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]],[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]])>>> a[1:,-2:,:-1]
array([[[16, 17, 18],[20, 21, 22]]])
尾部切片可以省略:
>>> a[1] == a[1,:,:]
array([[ True, True, True, True],[ True, True, True, True],[ True, True, True, True]])
与 Python 不同,NumPy 中切片创建一个视图而不是副本。
详见组合高级和基本索引。
<
在 dtype 声明中,表示数据为小端(右边是大括号)。
>>> dt = np.dtype('<f') # little-endian single-precision float
在 dtype 声明中,表示数据为大端(左边是大括号)。
>>> dt = np.dtype('>H') # big-endian unsigned short
高级索引
而不是使用标量或切片作为索引,一个轴可以用数组作为索引,提供精细选择。这被称为高级索引或“花式索引”。
沿轴
数组a的操作沿轴 n的行为就好像它的参数是数组a的切片数组,每个切片在轴n上具有连续索引。
例如,如果a是一个 3 x N数组,沿轴 0 的操作表现得好像它的参数是包含每行切片的数组:
>>> np.array((a[0,:], a[1,:], a[2,:]))
具体起见,我们可以选择操作为数组反转函数numpy.flip,它接受一个axis参数。我们构造一个 3 x 4 数组a:
>>> a = np.arange(12).reshape(3,4)
>>> a
array([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]])
沿轴 0(行轴)翻转得到
>>> np.flip(a,axis=0)
array([[ 8, 9, 10, 11],[ 4, 5, 6, 7],[ 0, 1, 2, 3]])
回想沿轴的定义,沿轴 0 翻转是将其参数视为
>>> np.array((a[0,:], a[1,:], a[2,:]))
array([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]])
而np.flip(a,axis=0)的结果是翻转切片:
>>> np.array((a[2,:],a[1,:],a[0,:]))
array([[ 8, 9, 10, 11],[ 4, 5, 6, 7],[ 0, 1, 2, 3]])
数组
在 NumPy 文档中与 ndarray 同义使用。
array_like
任何可以解释为 ndarray 的标量或序列。除了 ndarrays 和标量,此类别还包括列表(可能嵌套并具有不同的元素类型)和元组。由 numpy.array 接受的任何参数都是 array_like。
>>> a = np.array([[1, 2.0], [0, 0], (1+1j, 3.)])>>> a
array([[1.+0.j, 2.+0.j],[0.+0.j, 0.+0.j],[1.+1.j, 3.+0.j]])
数组标量
数组标量是类型/类 float32,float64 等的实例。为了处理操作数的统一性,NumPy 将标量视为零维数组。相比之下,零维数组是包含精确一个值的 ndarray 实例。
轴
数组维度的另一个术语。轴从左到右编号;轴 0 是形状元组中的第一个元素。
在二维矢量中,轴 0 的元素是行,轴 1 的元素是列。
在更高的维度中,情况就不一样了。NumPy 将更高维度的矢量打印为行列建造块的复制,就像这个三维矢量一样:
>>> a = np.arange(12).reshape(2,2,3)
>>> a
array([[[ 0, 1, 2],[ 3, 4, 5]],[[ 6, 7, 8],[ 9, 10, 11]]])
a被描述为一个其元素为 2x3 矢量的两元素数组。从这个角度来看,行和列分别是任何形状中的最终两个轴。
这个规则可以帮助你预测矢量将如何打印,反过来也可以帮助你找到任何打印元素的索引。例如,在这个例子中,8 的最后两个值的索引必须是 0 和 2。由于 8 出现在两个 2x3 中的第二个中,第一个索引必须是 1:
>>> a[1,0,2]
8
在打印矢量时,计算维度的一个方便方法是在开括号后计数[符号。这在区分例如(1,2,3)形状和(2,3)形状时非常有用:
>>> a = np.arange(6).reshape(2,3)
>>> a.ndim
2
>>> a
array([[0, 1, 2],[3, 4, 5]])
>>> a = np.arange(6).reshape(1,2,3)
>>> a.ndim
3
>>> a
array([[[0, 1, 2],[3, 4, 5]]])
.base
如果一个数组没有拥有它的内存,那么它的基础属性会返回数组正在引用的对象的内存。该对象可能正在引用另一个对象的内存,因此拥有对象可能是a.base.base.base...。一些作家错误地声称测试base决定数组是否是视图。有关正确的方法,请参阅numpy.shares_memory。
大端
请参见字节序。
BLAS
基本线性代数子程序
广播
广播是 NumPy 处理不同大小的 ndarray 的能力,就好像它们都是相同大小一样。
它允许优雅的做-我-知道什么的行为,在这种情况下,将标量添加到向量会将标量值添加到每个元素。
>>> a = np.arange(3)
>>> a
array([0, 1, 2])
>>> a + [3, 3, 3]
array([3, 4, 5])
>>> a + 3
array([3, 4, 5])
通常,向量操作数必须全部具有相同的大小,因为 NumPy 逐元素工作——例如,c = a * b是
c[0,0,0] = a[0,0,0] * b[0,0,0]c[0,0,1] = a[0,0,1] * b[0,0,1]
...
但在某些有用的情况下,NumPy 可以沿着“缺失”的轴或“太短”的维度复制数据,使形状匹配。复制不会占用内存或时间。详情请参见广播。
C 顺序
与行主导相同。
列主导
查看行优先和列优先顺序。
连续的
如果数组是连续的,则:
-
它占据了一块连续的内存块,以及
-
具有更高索引的数组元素占据更高地址(即,没有步长为负)。
有两种类型的适当连续的 NumPy 数组:
-
Fortran 连续数组指的是以列方式存储的数据,即存储在内存中的数据索引从最低维开始;
-
C 连续,或简单连续的数组,指的是以行方式存储的数据,即存储在内存中的数据索引从最高维开始。
对于一维数组,这些概念是相同的。
例如,2x2 数组A如果其元素按以下顺序存储在内存中,则为 Fortran 连续:
A[0,0] A[1,0] A[0,1] A[1,1]
且如果顺序如下,则为 C 连续:
A[0,0] A[0,1] A[1,0] A[1,1]
要测试数组是否为 C 连续,请使用 NumPy 数组的.flags.c_contiguous属性。要测试 Fortran 连续性,请使用.flags.f_contiguous属性。
拷贝
查看视图。
维度
查看轴。
数据类型
描述 ndarray 中(类型相同的)元素的数据类型。它可以更改以重新解释数组内容。详情请参见数据类型对象(dtype)。
精细索引
高级索引的另一个术语。
字段
在结构化数据类型中,每个子类型称为字段。字段具有名称(字符串)、类型(任何有效的 dtype)和可选的标题。请参见数据类型对象(dtype)。
Fortran 顺序
与列主导相同。
展平
查看拉伸。
同质的
同质数组的所有元素具有相同类型。与 Python 列表相反,ndarrays 是同质的。类型可能很复杂,如结构化数组,但所有元素都具有该类型。
NumPy 的对象数组,其中包含指向 Python 对象的引用,起到异构数组的作用。
数据项大小
dtype 元素的字节大小。
小端
查看字节顺序。
掩码
用于选��仅对某些元素进行操作的布尔数组:
>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])
>>> mask = (x > 2)
>>> mask
array([False, False, False, True, True])
>>> x[mask] = -1
>>> x
array([ 0, 1, 2, -1, -1])
蒙版数组
坏的或缺失的数据可以通过将其放入蒙版数组中,该数组具有指示无效条目的内部布尔数组来干净地忽略。对于带有蒙版数组的操作会忽略这些条目。
>>> a = np.ma.masked_array([np.nan, 2, np.nan], [True, False, True])
>>> a
masked_array(data=[--, 2.0, --],mask=[ True, False, True],fill_value=1e+20)>>> a + [1, 2, 3]
masked_array(data=[--, 4.0, --],mask=[ True, False, True],fill_value=1e+20)
详情请参见蒙版数组。
矩阵
NumPy 的二维矩阵类不应再使用;请使用常规 ndarrays。
ndarray
NumPy 的基本结构。
对象数组
一个其数据类型为object的数组;即,它包含对 Python 对象的引用。对数组进行索引解引用 Python 对象,因此与其他 ndarrays 不同,对象数组具有能够保存异构对象的能力。
ravel
numpy.ravel 和 numpy.flatten 都会将 ndarray 展平。如果可能,ravel会返回视图;flatten总是返回副本。
展平将多维数组折叠为单个维度;如何完成此操作的详细信息(例如,a[n+1]应该是下一行还是下一列)是参数。
记录数组
允许以属性样式(a.field)访问的一个结构化数组,除了a['field']。详情请参见 numpy.recarray.
行主序
参见行主序和列主序。NumPy 默认以行主序创建数组。
标量
在 NumPy 中,通常是数组标量的同义词。
形状
显示 ndarray 每个维度的长度的元组。元组本身的长度即为维度的数量(numpy.ndim)。元组元素的乘积即为数组中的元素数量。详情请参见 numpy.ndarray.shape。
步幅
物理内存是一维的;步幅提供了一种将给定索引映射到内存地址的机制。对于 N 维数组,其strides属性是一个 N 元素元组;从索引i向轴n上的索引i+1前进意味着在地址上添加a.strides[n]个字节。
步幅会自动从数组的 dtype 和形状中计算,但也可以直接使用 as_strided 指定。
详情请参见 numpy.ndarray.strides。
要了解步进是如何支撑 NumPy 视图的强大功能,请参见NumPy 数组:高效数值计算的结构。
结构化数组
其 dtype 为结构化数据类型的数组。
结构化数据类型
用户可以创建包含其他数组和数据类型的任意复杂的 dtype,这些复合 dtype 被称为结构化数据类型。
子数组
嵌套在结构化数据类型中的数组,如此处的b:
>>> dt = np.dtype([('a', np.int32), ('b', np.float32, (3,))])
>>> np.zeros(3, dtype=dt)
array([(0, [0., 0., 0.]), (0, [0., 0., 0.]), (0, [0., 0., 0.])],dtype=[('a', '<i4'), ('b', '<f4', (3,))])
子数组数据类型
表现得像一个 ndarray 的结构化数据类型的元素。
标题
结构化数据类型中字段名称的别名。
类型
在 NumPy 中,通常是 dtype 的同义词。对于更一般的 Python 含义,请参见此处。
ufunc
NumPy 的快速逐元素计算(向量化)可以选择应用哪个函数。该函数的通用术语是ufunc,缩写为universal function。NumPy 例程具有内置的 ufunc,但用户也可以编写自己的。
向量化
NumPy 把数组处理交给了 C 语言,在那里循环和计算比在 Python 中快得多。为了利用这一点,使用 NumPy 的程序员取消了 Python 循环,而是使用数组对数组操作。向量化 既可以指 C 的卸载,也可以指结构化 NumPy 代码以利用它。
视图
不触及底层数据,NumPy 可使一个数组看起来改变其数据类型和形状。
以此方式创建的数组是一个视图,而且 NumPy 经常利用使用视图而不是创建新数组来获得性能优势。
潜在的缺点是对视图的写入也可能改变原始数组。如果这是一个问题,NumPy 需要创建一个物理上不同的数组 - 一个copy.
一些 NumPy 例程总是返回视图,一些总是返回副本,有些可能返回其中之一,对于一些情况可以指定选择。管理视图和副本的责任落在程序员身上。numpy.shares_memory 可以检查b是否为a的视图,但精确答案并非总是可行,就像文档页面所解释的那样。
>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])
>>> y = x[::2]
>>> y
array([0, 2, 4])
>>> x[0] = 3 # changing x changes y as well, since y is a view on x
>>> y
array([3, 2, 4])
发布说明
原文:
numpy.org/doc/1.26/release.html
-
1.26.0
-
新功能
-
numpy.array_api中的数组 API v2022.12 支持 -
支持更新的加速 BLAS/LAPACK 库
-
f2py的meson后端支持 -
f2py的bind(c)支持
-
-
改进
f2py的iso_c_binding支持
-
构建系统变更
-
NumPy 特定的构建自定义
-
构建依赖项
-
故障排除
-
-
贡献者
-
已合并的拉取请求
-
-
1.25.2
-
贡献者
-
已合并的拉取请求
-
-
1.25.1
-
贡献者
-
已合并的拉取请求
-
-
1.25.0
-
弃用内容
-
过期弃用
-
兼容性说明
-
当
mode=wrap时,np.pad使用严格的原始数据倍数进行填充 -
移除 Cython 中的
long_t和ulong_t -
针对
ufunc的axes参数错误消息和类型已更改 -
如果使用
where,则支持定义__array_ufunc__的类数组可以覆盖ufunc -
默认情况下,使用 NumPy C API 进行编译现在具有向后兼容性
-
-
新功能
-
np.einsum现在接受具有object数据类型的数组 -
增加对原位矩阵乘法的支持
-
新增
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 的信息
-
修复了当以参数 prepend/append 调用时,
np.ma.diff不保留掩码的问题。 -
在 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__机制的速度提升](release/1.25.0-notes.html#array-function-machinery-is-now-much-faster) -
ufunc.at的速度可以提升很多](release/1.25.0-notes.html#ufunc-at-can-be-much-faster) -
NpzFile上的成员测试更快](release/1.25.0-notes.html#faster-membership-test-on-npzfile)
-
-
变更](release/1.25.0-notes.html#changes)
-
np.r_[]和np.c_[]的某些标量值](release/1.25.0-notes.html#np-r-and-np-c-with-certain-scalar-values) -
大多数 NumPy 函数被包装为可调用的 C 函数](release/1.25.0-notes.html#most-numpy-functions-are-wrapped-into-a-c-callable)
-
C++ 标准库使用](release/1.25.0-notes.html#c-standard-library-usage)
-
-
-
1.24.3
-
贡献者](release/1.24.3-notes.html#contributors)
-
合并的拉取请求](release/1.24.3-notes.html#pull-requests-merged)
-
-
1.24.2
-
贡献者](release/1.24.2-notes.html#contributors)
-
合并的拉取请求](release/1.24.2-notes.html#pull-requests-merged)
-
-
1.24.1
-
贡献者](release/1.24.1-notes.html#contributors)
-
合并的拉取请求](release/1.24.1-notes.html#pull-requests-merged)
-
-
1.24.0
-
弃用信息
-
弃用
fastCopyAndTranspose和PyArray_CopyAndTranspose](release/1.24.0-notes.html#deprecate-fastcopyandtranspose-and-pyarray-copyandtranspose) -
Python 整数的越界转换
-
弃用
msort](release/1.24.0-notes.html#deprecate-msort) -
np.str0和类似对象现在弃用](release/1.24.0-notes.html#np-str0-and-similar-are-now-deprecated)
-
-
弃用过期的内容](release/1.24.0-notes.html#expired-deprecations)
-
兼容性说明](release/1.24.0-notes.html#compatibility-notes)
-
array.fill(scalar)的行为可能略有不同](release/1.24.0-notes.html#array-fill-scalar-may-behave-slightly-different) -
子数组到对象的转换现在会进行拷贝](release/1.24.0-notes.html#subarray-to-object-cast-now-copies)
-
返回的数组将尊重 dtype 参数对象的唯一性](release/1.24.0-notes.html#returned-arrays-respect-uniqueness-of-dtype-kwarg-objects)
-
BufferError引发 DLPack 导出错误 -
不再在 GCC-6 上进行 NumPy 构建的测试](release/1.24.0-notes.html#numpy-builds-are-no-longer-tested-on-gcc-6)
-
-
新特性](release/1.24.0-notes.html#new-features)
-
多项式类中添加了新的
symbol属性](release/1.24.0-notes.html#new-attribute-symbol-added-to-polynomial-classes) -
Fortran
character字符串的 F2PY 支持](release/1.24.0-notes.html#f2py-support-for-fortran-character-strings) -
新函数
np.show_runtime](release/1.24.0-notes.html#new-function-np-show-runtime) -
testing.assert_array_equal的strict选项](release/1.24.0-notes.html#strict-option-for-testing-assert-array-equal) -
添加到
np.unique的新参数equal_nan -
numpy.stack的casting和dtype关键字参数 -
numpy.vstack的casting和dtype关键字参数 -
numpy.hstack的casting和dtype关键字参数 -
底层的单实例 RandomState 的比特生成器可以更改
-
np.void现在有一个dtype参数
-
-
改进
-
F2PY 改进
-
IBM zSystems Vector Extension Facility (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 的确定性输出文件
-
average的keepdims参数 -
np.unique新增参数equal_nan
-
-
兼容性说明
-
1 维
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 中
loads,ndfromtxt和mafromtxt的过时弃用已移除
-
-
弃用
-
在 mrecords 中使用分隔符而不是作为 kwarg 的 delimitor
-
将布尔
kth值传递给(arg-)partition 已被弃用 -
np.MachAr类已被弃用
-
-
兼容性注意事项
-
Distutils 对 clang 强制使用严格的浮点模型
-
已删除复数类型的 floor division 支持
-
numpy.vectorize函数现在产生与基础函数相同的输出类 -
不再支持 Python 3.7
-
复杂数据类型的 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 支持
-
keepdims可选参数添加到numpy.argmin,numpy.argmax -
bit_count用于计算整数中 1 位的数量 -
ndim和axis属性已添加到numpy.AxisError -
windows/arm64目标的初步支持 -
增加对龙芯的支持
-
添加了
.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
-
新函数
- 添加
PCG64DXSMBitGenerator
- 添加
-
过期的弃用项
-
已弃用项
-
.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的输出类现在与输入类匹配 -
启用 Accelerate Framework
-
-
-
1.20.3
-
贡献者
-
合并的拉取请求
-
-
1.20.2
-
贡献者
-
合并的拉取请求
-
-
1.20.1
-
亮点
-
贡献者
-
合并的拉取请求
-
-
1.20.0
-
新函数
-
random.Generator类有一个新的permuted函数。 -
sliding_window_view为 numpy 数组提供了滑动窗口视图(release/1.20.0-notes.html#sliding-window-view-provides-a-sliding-window-view-for-numpy-arrays) -
numpy.broadcast_shapes是一���新的用户可见函数(release/1.20.0-notes.html#numpy-broadcast-shapes-is-a-new-user-facing-function)
-
-
弃用(release/1.20.0-notes.html#deprecations)
-
弃用使用
np.int等内置类型的别名(release/1.20.0-notes.html#using-the-aliases-of-builtin-types-like-np-int-is-deprecated) -
将
shape=None传递给具有非可选形状参数的函数已被弃用(release/1.20.0-notes.html#passing-shape-none-to-functions-with-a-non-optional-shape-argument-is-deprecated) -
索引错误即使索引结果为空也会报告(release/1.20.0-notes.html#indexing-errors-will-be-reported-even-when-index-result-is-empty)
-
mode和searchside的不精确匹配已被弃用(release/1.20.0-notes.html#inexact-matches-for-mode-and-searchside-are-deprecated) -
numpy.dual 的弃用(release/1.20.0-notes.html#deprecation-of-numpy-dual)
-
outer和ufunc.outer对矩阵已弃用(release/1.20.0-notes.html#outer-and-ufunc-outer-deprecated-for-matrix) -
进一步弃用数字样式类型(release/1.20.0-notes.html#further-numeric-style-types-deprecated)
-
ndindex的ndincr方法已被弃用(release/1.20.0-notes.html#the-ndincr-method-of-ndindex-is-deprecated) -
未定义
__len__和__getitem__的 ArrayLike 对象(release/1.20.0-notes.html#arraylike-objects-which-do-not-define-len-and-getitem)
-
-
未来更改(release/1.20.0-notes.html#future-changes)
- 数组不能使用子数组 dtypes(release/1.20.0-notes.html#arrays-cannot-be-using-subarray-dtypes)
-
过时的废弃
- 已移除财务函数。
-
兼容性注意事项
-
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尊重所有零参数的数据类型。 -
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 build 传递优化参数
-
现在支持 NVIDIA HPC SDK nvfortran 编译器
-
cov和corrcoef的dtype选项
-
-
改进
-
改进多项式的字符串表示(
__str__) -
将 Accelerate 库从 LAPACK 库候选中移除
-
包含多行对象的对象数组的
repr更易读 -
concatenate函数支持提供输出的数据类型 -
f2py 回调函数线程安全
-
numpy.core.records.fromfile现在支持类文件对象 -
在 AIX 上添加对 RPATH 的支持到 distutils
-
使用命令行参数指定的 f90 编译器
-
为 Cython 3.0 及以上版本添加 NumPy 声明
-
使窗口函数完全对称
-
-
性能改进和更改
- 启用多平台 SIMD 编译器优化
-
更改
-
更改
divmod(1., 0.)和相关函数的行为 -
np.linspace在整数上使用 floor](release/1.20.0-notes.html#np-linspace-on-integers-now-uses-floor)
-
-
-
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 维数组上通过轴传递](release/1.19.0-notes.html#numpy-insert-and-numpy-delete-can-no-longer-be-passed-an-axis-on-0d-arrays) -
numpy.delete不再忽略超出范围的索引](release/1.19.0-notes.html#numpy-delete-no-longer-ignores-out-of-bounds-indices) -
numpy.insert和numpy.delete不再接受非整数索引](release/1.19.0-notes.html#numpy-insert-and-numpy-delete-no-longer-accept-non-integral-indices) -
numpy.delete不再将布尔索引强制转换为整数](release/1.19.0-notes.html#numpy-delete-no-longer-casts-boolean-indices-to-integers)
-
-
兼容性说明
-
从
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 -
传递
shape=0到numpy.rec工厂函数已被废弃 -
废弃可能未使用的 C-API 函数
-
转换某些类型到 dtypes 已废弃
-
废弃
np.complexfloating标量的round操作 -
numpy.ndarray.tostring()已被废弃,推荐使用tobytes()
-
-
C API 变更
-
API 函数中对
const维度的更好支持 -
UFunc 内部循环增加 const 修饰符
-
-
新特性
-
numpy.frompyfunc现在接受一个 identity 参数 -
np.str_标量现在支持缓冲区协议 -
numpy.copy的subok选项 -
numpy.linalg.multi_dot现在接受out参数 -
numpy.count_nonzero的keepdims参数 -
numpy.array_equal的equal_nan参数
-
-
改进
-
改进 CPU 特性的检测
-
在回退的 lapack_lite 中,64 位平台上使用 64 位整数大小
-
当输入为
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 -
现在
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
-
新特性
-
添加我们自己的
*.pxdcython 导入文件 -
现在可以输入一个轴的元组到
expand_dims中 -
支持 64 位 OpenBLAS
-
在 F2PY 中添加
--f2cmap选项
-
-
改进
-
相同大小的不同 C 数值类型具有唯一的名称
-
argwhere在 0 维数组上现在产生一致的结果 -
为
random.permutation和random.shuffle添加axis参数 -
method关键字参数用于np.random.multivariate_normal -
为
numpy.fromstring增加复数支持 -
当
axis不为 None 时,numpy.unique有一致的轴顺序 -
numpy.matmul的布尔输出现在转换为布尔值 -
numpy.random.randint在范围为2**32时产生不正确的值 -
为
numpy.fromfile增加复数支持 -
gcc命名的编译器现在添加std=c99参数](发布/1.18.0-说明.html#std-c99-added-if-compiler-is-named-gcc)
-
-
变更
-
NaT现在排序到数组的末尾 -
在
np.set_printoptions中不正确的threshold会引发TypeError或ValueError -
保存带有元数据的数据类型时发出警告
-
numpy.distutils在 LDFLAGS 和类似情况下的 append 行为发生更改 -
移除未弃用的
numpy.random.entropy -
添加选项以安静地配置构建并用
-Werror构建
-
-
-
1.17.5
-
贡献者
-
已合并的拉取请求
-
-
1.17.4
-
亮点
-
贡献者
-
已合并的拉取请求
-
-
1.17.3
-
亮点
-
兼容性说明
-
贡献者
-
已合并的拉取请求
-
-
1.17.2
-
贡献者
-
已合并的拉取请求
-
-
1.17.1
-
贡献者
-
合并的拉取请求
-
-
1.17.0
-
亮点
-
新函数
-
废弃项
-
numpy.polynomial函数在传递float而非int时会警告 -
弃用
numpy.distutils.exec_command和temp_file_name -
C-API 封装数组的��写标志
-
numpy.nonzero不应该再在 0d 数组上调用 -
写入
numpy.broadcast_arrays的结果会产生警告
-
-
未来的变化
- dtypes 中的形状为 1 的字段在将来的版本中不会被折叠成标量
-
兼容性说明
-
float16次正规化舍入 -
使用 divmod 时的带符号零
-
MaskedArray.mask现在返回掩码的视图,而不是掩码本身 -
不要在
numpy.frombuffer中查找__buffer__属性 -
out在take,choose,put中用于内存重叠时被缓冲 -
加载时拆开解除引用需要显式选择
-
旧 random 模块中随机流的潜在变化
-
i0现在总是返回与输入相同形状的结果 -
can_cast不再假设所有不安全的转换都是允许的 -
ndarray.flags.writeable稍微更频繁地切换到 true
-
-
C API 变化
- 维度或步长输入参数现在通过
npy_intp const*传递
- 维度或步长输入参数现在通过
-
新特性
-
具有可选择的随机数生成器的新可扩展
numpy.random模块 -
libFLAME
-
用户定义的 BLAS 检测顺序
-
用户定义的 LAPACK 检测顺序
-
ufunc.reduce和相关函数现在接受一个where掩码 -
Timsort 和基数排序已替换 mergesort 以实现稳定排序
-
packbits和unpackbits接受一个order关键字 -
unpackbits现在接受一个count参数 -
linalg.svd和linalg.pinv在 Hermitian 输入上可能更快 -
divmod操作现在支持两个timedelta64操作数 -
fromfile现在接受一个offset参数 -
pad的新模式 “empty” -
empty_like和相关函数现在接受一个shape参数 -
浮点数标量实现
as_integer_ratio以匹配内置的 float -
结构化的
dtype对象可以用多个字段名称进行索引 -
.npy文件支持 Unicode 字段名称
-
-
改进
-
数组比较断言包括最大差异
-
用 pocketfft 库替换了基于 fftpack 的
fft模块 -
在
numpy.ctypeslib中对ctypes支持的进一步改进 -
numpy.errstate现在也是一个函数装饰器 -
numpy.exp和numpy.log在 float32 实现上加速 -
改进
numpy.pad的性能 -
numpy.interp更稳健地处理无穷大 -
Pathlib支持fromfile,tofile和ndarray.dump -
对于 bool 和 int 类型的特定化的
isnan,isinf和isfiniteufuncs -
isfinite支持datetime64和timedelta64类型 -
nan_to_num中添加了新的关键字 -
分配过大的数组引起的 MemoryError 错误更加详细
-
floor,ceil和trunc现在尊重内置魔术方法 -
quantile现在可以在Fraction和decimal.Decimal对象上使用 -
matmul中支持对象数组
-
-
变更
-
median和percentile函数族不再对nan发出警告 -
将
timedelta64 % 0行为调整为返回NaT -
NumPy 函数现在始终支持通过
__array_function__进行重写 -
lib.recfunctions.structured_to_unstructured不会压缩单个字段视图 -
clip现在在底层使用 ufunc -
__array_interface__偏移现在按照文档正常工作 -
在
savez函数中将 pickle 协议设置为 3 以强制使用 zip64 标志 -
使用不存在的字段索引结构化数组时引发
KeyError而不是ValueError
-
-
-
1.16.6
-
亮点
-
新功能
- 允许
matmul (*@* operator)与对象数组一起使用。
- 允许
-
兼容性说明
- 修复 bool 类型在 matmul(*@*操作符)中的回归
-
改进
- 数组比较断言包含最大差异
-
贡献者
-
已合并的拉取请求
-
-
1.16.5
-
贡献者
-
已合并的拉取请求
-
-
1.16.4
-
新的停用功能
- C-API 封装数组的可写标记
-
兼容性注意事项
- 随机流的潜在改动
-
变更
numpy.lib.recfunctions.structured_to_unstructured不会压缩单字段视图
-
贡献者
-
已合并的拉取请求
-
-
1.16.3
-
兼容性注意事项
- 加载时解 pickling 需要显式选择
-
改进
- random.mvnormal中的协方差转换为 double
-
变更
__array_interface__偏移现在按照文档工作
-
-
1.16.2
-
兼容性注意事项
- 使用 divmod 时的有符号零
-
贡献者
-
已合并的拉取请求
-
-
1.16.1
-
贡献者
-
增强
-
兼容性注意事项
-
新特性
timedelta64操作数现在支持 divmod 操作
-
改进
-
np.ctypeslib中ctypes支持的进一步改进 -
数组比较断言包括最大差异(array comparison assertions include maximum differences)
-
-
更改(Changes)
- 调整了
timedelta64 % 0的行为以返回NaT(timedelta64 % 0 behavior adjusted to return NaT)
- 调整了
-
-
1.16.0
-
亮点
-
新函数(New functions)
-
新的弃用特性(New deprecations)
-
过期的弃用特性(Expired deprecations)
-
未来的更改(Future changes)
-
兼容性注意事项(Compatibility notes)
-
Windows 上的 f2py 脚本(f2py script on Windows)
-
NaT 比较(NaT comparisons)
-
complex64/128的对齐方式已更改(complex64/128 alignment has changed) -
nd_grid __len__已移除(nd_grid len removal) -
np.unravel_index现在接受shape关键字参数 -
多字段视图返回视图而不是副本(multi-field views return a view instead of a copy)
-
-
C API 更改(C API changes)
-
新特性(New Features)
-
histogram中添加了综合平方误差(ISE)估计器(integrated squared error (ISE) estimator added to histogram) -
给
np.loadtxt添加了max_rows关键字(max_rows keyword added for np.loadtxt) -
np.timedelta64操作数现在有模运算支持(modulus operator support added for np.timedelta64 operands)
-
-
改进(Improvements)
-
numpy 数组的无副本 pickling(no-copy pickling of numpy arrays)
-
构建独立的 shell(build shell independence)
-
*
np.polynomial.Polynomial*类会在 Jupyter 笔记本中以 LaTeX 渲染(np.polynomial.Polynomial classes render in LaTeX in Jupyter notebooks) -
randint和choice现在适用于空分布(randint and choice now work on empty distributions) -
linalg.lstsq,linalg.qr, 和linalg.svd现在适用于空数组(linalg.lstsq, linalg.qr, and linalg.svd now work with empty arrays) -
错误的
PEP3118格式字符串会抛出更好的错误消息以链式异常处理(Chain exceptions to give better error messages for invalid PEP3118 format strings) -
Einsum 优化路径更新和效率提升(Einsum optimization path updates and efficiency improvements)
-
numpy.angle和numpy.expand_dims现在适用于ndarray子类 -
NPY_NO_DEPRECATED_API编译器警告抑制 -
np.diff添加了 kwargs prepend 和 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 扩展了额外的服务
-
-
更改
-
比较 ufunc 现在会报错而不是返回 NotImplemented
-
positive现在会对非数值数组发出弃用警告 -
NDArrayOperatorsMixin现在实现矩阵乘法 -
np.polyfit中协方差矩阵的缩放方式不同 -
maximum和minimum不再发出警告 -
Umath 和 multiarray C 扩展模块合并为一个单独模块
-
getfield的有效性检查已扩展 -
NumPy 函数现在支持使用
__array_function__进行覆盖 -
基于只读缓冲区的数组不能设置为
writeable
-
-
-
1.15.4
-
兼容性注意事项
-
贡献者
-
已合并的拉取请求
-
-
1.15.3
-
兼容性注意事项
-
贡献者
-
已合并的拉取请求
-
-
1.15.2
-
兼容性注意事项
-
贡献者
-
已合并的拉取请求
-
-
1.15.1
-
兼容性注意事项
-
贡献者
-
已合并的拉取请求
-
-
1.15.0
-
亮点
-
新函数
-
废弃功能
-
未来变更
-
兼容性注意事项
-
编译测试模块重命名并设为私有
-
np.savez返回的NpzFile现在是collections.abc.Mapping -
在某些条件下,必须在上下文管理器中使用
nditer -
Numpy 已转而使用 pytest 而不是 nose 进行测试
-
Numpy 不再使用
__array_interface__向ctypes施加修改 -
np.ma.notmasked_contiguous和np.ma.flatnotmasked_contiguous现在总是返回列表 -
np.squeeze恢复了无法处理axis参数的对象的旧行为 -
非结构化 void 数组的
.item方法现在返回一个字节对象 -
copy.copy和copy.deepcopy不再将masked转换为数组 -
结构化数组的多字段索引仍将返回一个副本](release/1.15.0-notes.html#multifield-indexing-of-structured-arrays-will-still-return-a-copy)
-
-
C API 变更
-
新函数
npy_get_floatstatus_barrier和npy_clear_floatstatus_barrier -
PyArray_GetDTypeTransferFunction更改
-
-
新特性
-
np.gcd和np.lcm函数现针对整数和对象类型 -
支持 iOS 跨平台构建
-
np.intersect1d添加了return_indices关键字 -
np.quantile和np.nanquantile -
构建系统
-
-
改进
-
np.einsum更新 -
np.ufunc.reduce和相关函数现在接受初始值 -
np.flip可以在多个轴上操作 -
histogram和histogramdd函数已移至np.lib.histograms -
在给定显示的 bins 时,
histogram将接受 NaN 值 -
当给定显式的 bin 边界时,
histogram可以处理日期时间类型 (release/1.15.0-notes.html#histogram-works-on-datetime-types-when-explicit-bin-edges-are-given) -
histogram的“auto”估计器更好地处理有限方差 (release/1.15.0-notes.html#histogram-auto-estimator-handles-limited-variance-better) -
histogram和histogramdd返回的边界现在与数据的浮点类型匹配 (release/1.15.0-notes.html#the-edges-returned-by-histogram-and-histogramdd-now-match-the-data-float-type) -
histogramdd允许在一部分轴上给定显式范围 (release/1.15.0-notes.html#histogramdd-allows-explicit-ranges-to-be-given-in-a-subset-of-axes) -
histogramdd和histogram2d的 normed 参数已重命名 (release/1.15.0-notes.html#the-normed-arguments-of-histogramdd-and-histogram2d-have-been-renamed) -
np.r_与 0d 数组一起使用,np.ma.mr_与np.ma.masked一起使用 (release/1.15.0-notes.html#np-r-works-with-0d-arrays-and-np-ma-mr-works-with-np-ma-masked) -
np.ptp接受keepdims参数和扩展的轴元组 (release/1.15.0-notes.html#np-ptp-accepts-a-keepdims-argument-and-extended-axis-tuples) -
MaskedArray.astype现在与ndarray.astype相同 -
在编译时启用 AVX2/AVX512 (release/1.15.0-notes.html#enable-avx2-avx512-at-compile-time)
-
当接收标量或 0d 输入时,
nan_to_num总是返回标量 (release/1.15.0-notes.html#nan-to-num-always-returns-scalars-when-receiving-scalar-or-0d-inputs) -
np.flatnonzero在 numpy 可转换类型上工作 (release/1.15.0-notes.html#np-flatnonzero-works-on-numpy-convertible-types) -
np.interp返回 numpy 标量,而不是内建标量 -
允许在 Python 2 中将 dtype 字段名设置为 Unicode (release/1.15.0-notes.html#allow-dtype-field-names-to-be-unicode-in-python-2)
-
比较 ufuncs 接受
dtype=object,覆盖默认的bool(release/1.15.0-notes.html#comparison-ufuncs-accept-dtype-object-overriding-the-default-bool) -
sort函数接受kind='stable'(release/1.15.0-notes.html#sort-functions-accept-kind-stable) -
对于原地累积不会产生临时副本 (release/1.15.0-notes.html#do-not-make-temporary-copies-for-in-place-accumulation)
-
linalg.matrix_power现在可以处理矩阵堆栈 -
多维数组的
random.permutation性能提高了 (release/1.15.0-notes.html#increased-performance-in-random-permutation-for-multidimensional-arrays) -
广义 ufuncs 现在接受
axes、axis和keepdims参数 (release/1.15.0-notes.html#generalized-ufuncs-now-accept-axes-axis-and-keepdims-arguments) -
在 ppc 系统上,float128 值现在可以正确打印 (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现在在收缩为 0 长度的维度时返回零数组 -
numpy.testing重新组织 -
np.asfarray不再接受非数据类型的dtype参数 -
1D
np.linalg.norm保留浮点输入类型,即使对于任意阶数 -
count_nonzero(arr, axis=())现在计数不包括任何轴,而不是所有轴 -
__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 变更。
UPDATEIFCOPY数组的 PyPy 兼容替代方法。
-
新特性。
-
文本 IO 函数的编码参数。
-
外部
nose插件可被numpy.testing.Tester使用。 -
numpy.testing中新增了parametrize装饰器。 -
numpy.polynomial.chebyshev中新增了chebinterpolate函数。 -
Python 3 中支持读取
lzma压缩文本文件。 -
np.setprintoptions和np.array2string中新增了sign选项。 -
np.linalg.matrix_rank中新增了hermitian选项。 -
np.array2string中新增了threshold和edgeitems选项。 -
concatenate和stack新增了out参数。 -
Windows 上支持 PGI flang 编译器。
-
-
改进。
-
在
random.noncentral_f中,分子自由度只需为正数。 -
所有
np.einsum变体都释放了 GIL](release/1.14.0-notes.html#the-gil-is-released-for-all-np-einsum-variations) -
np.einsum 函数在可能的情况下将使用 BLAS 并默认进行优化](release/1.14.0-notes.html#the-np-einsum-function-will-use-blas-when-possible-and-optimize-by-default)
-
f2py现在处理 0 维数组](release/1.14.0-notes.html#f2py-now-handles-arrays-of-dimension-0) -
numpy.distutils支持同时使用 MSVC 和 mingw64-gfortran](release/1.14.0-notes.html#numpy-distutils-supports-using-msvc-and-mingw64-gfortran-together) -
np.linalg.pinv现在可以作用于堆叠矩阵](release/1.14.0-notes.html#np-linalg-pinv-now-works-on-stacked-matrices) -
numpy.save将数据对齐到 64 字节而不是 16 -
现在可以在不使用临时文件的情况下编写 NPZ 文件](release/1.14.0-notes.html#npz-files-now-can-be-written-without-using-temporary-files)
-
空结构化和字符串类型的更好支持](release/1.14.0-notes.html#better-support-for-empty-structured-and-string-types)
-
np.lib.financial中支持decimal.Decimal](release/1.14.0-notes.html#support-for-decimal-decimal-in-np-lib-financial) -
浮点数打印现在使用“dragon4”算法进行最短的十进制表示](release/1.14.0-notes.html#float-printing-now-uses-dragon4-algorithm-for-shortest-decimal-representation)
-
void数据类型元素现在以十六进制表示打印](release/1.14.0-notes.html#void-datatype-elements-are-now-printed-in-hex-notation) -
void数据类型的打印风格现在可以单独定制](release/1.14.0-notes.html#printing-style-for-void-datatypes-is-now-independently-customizable) -
np.loadtxt的内存使用量减少](release/1.14.0-notes.html#reduced-memory-usage-of-np-loadtxt)
-
-
更改](release/1.14.0-notes.html#changes)
-
结构化数组的多字段索引/赋值](release/1.14.0-notes.html#multiple-field-indexing-assignment-of-structured-arrays)
-
整数和 Void 标量现在不受
np.set_string_function影响](release/1.14.0-notes.html#integer-and-void-scalars-are-now-unaffected-by-np-set-string-function) -
0d 数组打印已更改,已弃用 array2string 的
style参数](release/1.14.0-notes.html#d-array-printing-changed-style-arg-of-array2string-deprecated) -
使用数组播种
RandomState需要一个 1-d 数组](release/1.14.0-notes.html#seeding-randomstate-using-an-array-requires-a-1-d-array) -
MaskedArray对象显示更有用的repr](release/1.14.0-notes.html#maskedarray-objects-show-a-more-useful-repr) -
np.polynomial类的repr更为明确
-
-
-
1.13.3](release/1.13.3-notes.html)
-
贡献者](release/1.13.3-notes.html#contributors)
-
合并的拉取请求](release/1.13.3-notes.html#pull-requests-merged)
-
-
1.13.2](release/1.13.2-notes.html)
-
贡献者
-
合并的 Pull 请求
-
-
1.13.1
-
合并的 Pull 请求
-
贡献者
-
-
1.13.0
-
亮点
-
新的函数
-
弃用
-
未来的更改
-
构建系统更改
-
兼容性说明
-
错误类型更改
-
元组对象数据类型
-
DeprecationWarning 转为 error
-
将 FutureWarning 更改为已更改的行为
-
数据类型现在总是为 true
-
__getslice__和__setslice__在ndarray子类中不再需要 -
使用
...(省略号)索引 MaskedArrays/Constants 现在返回 MaskedArray
-
-
C API 更改
-
在空数组和 NpyIter 中使用 GUfuncs 轴移除
-
添加了
PyArray_MapIterArrayCopyIfOverlap到 NumPy C-API
-
-
新特性
-
添加了
__array_ufunc__ -
新的
positiveufunc -
新的
divmodufunc -
np.isnatufunc 用于测试 NaT 特殊日期和时间差值的值 -
np.heavisideufunc 计算 Heaviside 函数 -
用于创建 blocked 数组的
np.block函数 -
isin函数,改进in1d -
临时省略
-
unique的axes参数 -
np.gradient现在支持不均匀间隔的数据 -
支持在
apply_along_axis中返回任意维度的数组 -
dtype添加了.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 属性的不安全的整型转换 -
binary_repr的位宽参数不足
-
-
未来变更
- 结构化数组的多字段操作
-
兼容性注意事项
-
DeprecationWarning 变成错误
-
FutureWarning 的变更行为
-
整数的负指数幂,
power和**会报错 -
放宽了步幅检查的默认设置
-
np.percentile的“midpoint”插值方法修复确切指数 -
keepdims参数传递给用户类方法 -
bitwise_and的身份变化 -
ma.median 在遇到非屏蔽的无效值时发出警告并返回 nan
-
assert_almost_equal更加一致 -
NoseTester在测试期间的警告行为 -
assert_warns和deprecated装饰器更具体 -
C API
-
-
新功能
-
as_strided的writeable关键字参数 -
rot90的axes关键字参数 -
通用的
flip -
numpy.distutils中的 BLIS 支持 -
在
numpy/__init__.py中加入运行分发特定检查的钩子 -
新增的
nancumsum和nancumprod函数 -
np.interp现在可以插值复数值 -
新增的多项式评估函数
polyvalfromroots -
新增的数组创建函数
geomspace -
用于测试警告的新上下文管理器
-
新增的屏蔽数组函数
ma.convolve和ma.correlate -
新的
float_power通用函数 -
现在
np.loadtxt支持单个整数作为usecol参数 -
histogram的改进的自动化箱估计器 -
np.roll现在可以同时滚动多个轴 -
对于 ndarrays,已实现
__complex__方法 -
现在支持
pathlib.Path对象 -
np.finfo的新bits属性 -
np.vectorize的新signature参数 -
对整数数组的除法现在会发出 py3kwarnings
-
numpy.sctypes现在在 Python3 中也包括bytes
-
-
改进
-
bitwise_and的特性变化 -
广义 Ufuncs 现在将解锁 GIL
-
np.fft中的缓存现在在总大小和项目数量上已限定
-
改进了零宽字符串/unicode 数据类型的处理
-
使用 AVX2 向量化的整数 ufuncs
-
np.einsum中的操作次序优化 -
quicksort 已更改为 introsort
-
ediff1d提高了性能和 subclass 处理 -
改善了 float16 数组的
ndarray.mean精度
-
-
更改
-
现在在 fromnumeric.py 中的所有类似数组的方法都使用关键字参数调用
-
大多数情况下,np.memmap 对象的操作返回 numpy 数组
-
增加警告的 stacklevel
-
-
-
1.11.3
-
贡献者维护/1.11.3
-
已合并的 Pull Requests
-
-
1.11.2
- 已合并的 Pull Requests
-
1.11.1
- 已合并的修复
-
1.11.0
-
亮点
-
构建系统更改
-
未来的改变
-
兼容性说明
-
datetime64 更改
-
linalg.norm返回类型更改 -
多项式拟合更改
-
np.dot现在引发
TypeError而不是ValueError -
FutureWarning 更改行为
-
%和//运算符 -
C API
-
检测旧式类的对象数据类型
-
-
新特性
-
改进
-
np.gradient现在支持axis参数](release/1.11.0-notes.html#np-gradient-now-supports-an-axis-argument) -
np.lexsort现在支持具有对象数据类型的数组](release/1.11.0-notes.html#np-lexsort-now-supports-arrays-with-object-data-type) -
np.ma.core.MaskedArray现在支持order参数](release/1.11.0-notes.html#np-ma-core-maskedarray-now-supports-an-order-argument) -
对掩码数组的内存和速度改进
-
ndarray.tofile现在在 linux 上使用 fallocate](release/1.11.0-notes.html#ndarray-tofile-now-uses-fallocate-on-linux) -
A.T @ A和A @ A.T形式操作的优化](release/1.11.0-notes.html#optimizations-for-operations-of-the-form-a-t-a-and-a-a-t) -
np.testing.assert_warns现在可以作为上下文管理器使用](release/1.11.0-notes.html#np-testing-assert-warns-can-now-be-used-as-a-context-manager) -
对 np.random.shuffle 的速度改进
-
-
变更
-
numpy.distutils中删除了 Pyrex 支持](release/1.11.0-notes.html#pyrex-support-was-removed-from-numpy-distutils) -
np.broadcast现在可以用单个参数调用](release/1.11.0-notes.html#np-broadcast-can-now-be-called-with-a-single-argument) -
np.trace现在尊重数组子类](release/1.11.0-notes.html#np-trace-now-respects-array-subclasses) -
np.dot现在引发TypeError而不是ValueError](release/1.11.0-notes.html#id1) -
linalg.norm返回类型发生变化](release/1.11.0-notes.html#id2)
-
-
弃用内容
-
以 Fortran 排序的数组视图](release/1.11.0-notes.html#views-of-arrays-in-fortran-order)
-
数组排序的无效参数](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 排序的视图
-
-
已解决的问题
-
合并的 PRs
-
注意事项
-
-
1.10.1
-
1.10.0
-
亮点
-
已弃用的支持
-
未来变化
-
兼容性注意事项
-
默认转换规则改变
-
numpy 版本字符串
-
放松的步幅检查
-
沿着除
axis=0之外的任何轴对 1d 数组进行连接都会引发IndexError -
np.ravel,np.diagonal 和 np.diag 现在保留子类型
-
rollaxis 和 swapaxes 总是返回视图
-
非零 现在返回基本 ndarrays
-
C API
-
recarray 字段返回类型
-
recarray 视图
-
ufunc 的’out’关键字参数现在接受数组的元组
-
byte-array 索引现在会引发 IndexError
-
包含带有数组的对象的掩码数组
-
当遇到无效值时,中位数会发出警告并返回 nan
-
从 numpy.ma.testutils 中可用的函数已更改
-
-
新功能
-
从 site.cfg 读取额外标志
-
np.cbrt 用于计算实浮点数的立方根
-
numpy.distutil 现在允许并行编译
-
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_typesand string dtype -
can_castand string dtype -
astype and string dtype
-
npyio.recfromcsv keyword arguments change
-
The
doc/swigdirectory moved -
The
npy_3kcompat.hheader changed -
Negative indices in C-Api
sq_itemandsq_ass_itemsequence methods -
NDIter
-
zeros_likefor string dtypes now returns empty strings
-
-
New Features
-
Percentile supports more interpolation options
-
对中位数和百分位数的广义轴支持。
-
np.linspace 和 np.logspace 添加了
Dtype参数。 -
对
np.triu和np.tril的更一般的广播支持。 -
tostring方法的tobytes别名。 -
构建系统。
-
对 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
-
使用非数组作为第二参数的二进制运算
-
只部分排序数组时,median 函数使用 overwrite_input
-
financial.npv 的修复
-
当比较 NaN 数时的运行时警告
-
-
新功能
-
对堆叠数组进行线性代数支持
-
ufuncs 的原位花式索引
-
新函数 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
-
亮点
-
兼容性注意事项
-
新功能
-
降维 UFuncs 通用 axis= 参数
-
降维 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 多项式 -
numpy.f2py中支持 Fortran 隐式形状数组和大小函数 -
其他新功能
-
-
更改
-
默认错误处理 -
numpy.distutils -
numpy.testing -
C API
-
-
废弃功能
-
删除的功能
-
numpy.fft -
numpy.memmap -
numpy.lib -
numpy.ma -
numpy.distutils
-
-
-
1.5.0
-
亮点
-
Python 3 兼容性
-
PEP 3118 兼容性](release/1.5.0-notes.html#pep-3118-compatibility)
-
-
新功能
-
复数到实数转换的警告
-
ndarrays 的 Dot 方法
-
linalg.slogdet 函数
-
新标题
-
-
更改
-
polynomial.polynomial
-
polynomial.chebyshev
-
直方图
-
相关性
-
-
-
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 核心数学配置更新
-
umath 重构
-
构建警告的改进
-
独立的核心数学库
-
CPU 架构检测
-
-