附加文件
术语表
(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])
发布说明
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
函数返回 NamedTuplesnp.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
新函数
- 添加
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
的输出类现在与输入类匹配启用 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
新特性
添加我们自己的
*.pxd
cython 导入文件现在可以输入一个轴的元组到
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
和isfinite
ufuncsisfinite
支持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 和 appendARM 支持更新
追加到构建标志
广义 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__
新的
positive
ufunc新的
divmod
ufuncnp.isnat
ufunc 用于测试 NaT 特殊日期和时间差值的值np.heaviside
ufunc 计算 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_types
and string dtypecan_cast
and string dtypeastype and string dtype
npyio.recfromcsv keyword arguments change
The
doc/swig
directory movedThe
npy_3kcompat.h
header changedNegative indices in C-Api
sq_item
andsq_ass_item
sequence methodsNDIter
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
的更一般的广播支持。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 架构检测