这个版本支持python 2.6-2.7和3.2-3.5。
numpy.distutils现在通过传递给setup.py build的--parallel/-j参数支持并行编译。
numpy.distutils现在支持通过site.cfg进行额外的自定义,以控制编译参数,即运行库、额外的链接/编译标志。
添加 np.linalg.multi_dot :计算单个函数调用中两个或多个数组的点积,同时自动选择最快的计算顺序。
新功能 np.stack 提供一个通用接口,用于沿新轴联接一系列数组,补充 np.concatenate 用于沿现有轴连接。
添加 nanprod 到NanFunctions集。
支持python 3.5中的“@”运算符。
dotblas模块已被删除。现在CBLAS支持多阵列。
testcalcs.py文件已被删除。
polytemplate.py文件已被删除。
npy-pyfile-dup和npy-pyfile-dupclose已从npy-3kcompat.h中删除。
splitCmdline已从numpy/distutils/exec_command.py中删除。
尝试运行并获取已从numpy/distutils/command/config.py中删除的输出
数组打印不再支持A.“”格式属性。
关键词 skiprows 和 missing 已从np.genfromtxt中删除。
skiprows
missing
关键字 old_behavior 从np.correlate中删除。
old_behavior
在数组比较中 arr1 == arr2 ,许多涉及字符串或结构化数据类型(用于返回scalars)的角部案例现在发布 FutureWarning 或 DeprecationWarning ,以后将更改为执行元素比较或引发错误。
arr1 == arr2
FutureWarning
DeprecationWarning
在 np.lib.split 结果中的空数组始终具有维度 (0,) 不管数组的大小被拆分。在numpy 1.11中,行为将被更改,以便保留维度。一 FutureWarning 因为这种变化从numpy 1.9开始就已经存在了,但是,由于一个错误,有时没有发出警告,并且尺寸已经被保留了。
np.lib.split
(0,)
安全评估类将在numpy 1.11中删除。
alterdot和restoredot函数将在numpy 1.11中删除。
有关这些更改的详细信息,请参阅下文。
就地操作的默认强制转换已更改为 'same_kind' . 例如,如果n是整数数组,而f是浮点数组,那么 n += f 会导致 TypeError 而在以前的numpy版本中,float将被静默地强制转换为int。在不太可能的情况下,示例代码不是实际的bug,可以通过将其重写为以向后兼容的方式更新 np.add(n, f, out=n, casting='unsafe') . 老年人 'unsafe' 自numpy 1.7以来,已弃用默认值。
'same_kind'
n += f
TypeError
np.add(n, f, out=n, casting='unsafe')
'unsafe'
开发版本的numpy版本字符串已从更改为 x.y.z.dev-githash 到 x.y.z.dev0+githash (注意+)以符合PEP 440。
x.y.z.dev-githash
x.y.z.dev0+githash
默认情况下,npy_轻松步幅检查现在为真。
更新:在1.10.2中,由于背部兼容性的原因,npy_relaxed_stead_checking的默认值更改为false。需要更多时间才能将其设为默认值。作为路线图的一部分,还添加了F撊u连续而非C撊u连续数组的维度更改视图。
axis=0
IndexError
使用轴!=0自numpy 1.7以来引发了一个弃用警告,现在它引发了一个错误。
两者之间的行为不一致 x)() 和 拉维尔(X) 以及 x-对角() 和 对角线(x) ,方法保留子类型,而函数不保留。这是固定的,函数现在的行为与方法类似,除了在矩阵的情况下,保留子类型。为了向后兼容,矩阵是特殊情况下的,并且仍然像以前一样返回一维数组。如果需要保留矩阵子类型,请使用方法而不是函数。
以前,返回视图,除非没有更改轴的顺序,在这种情况下,返回输入数组。现在,在所有情况下都会返回一个视图。
以前,一维输入(返回基ndarray)和高维输入(保留子类)之间存在不一致。行为已经统一,并且返回现在将是一个基准日。子类仍然可以通过提供自己的 非零 方法。
变化到 交换轴心 也适用于 PyArray_SwapAxes C函数,它现在在所有情况下都返回一个视图。
变化到 非零 也适用于 PyArray_Nonzero C函数,它现在在所有情况下都返回一个基ndarray。
dtype结构(pyarray_descr)在末尾有一个新成员来缓存其哈希值。这不应影响任何编写良好的应用程序。
对串联函数deprecationwarning的更改也会影响pyarray的concatenatearray,
以前,属性和索引访问的recarray字段返回的类型不一致,字符串类型的字段返回为chararray。现在,通过属性或索引访问的字段将为非结构化类型的字段返回一个ndarray,为结构化类型的字段返回一个recarray。值得注意的是,这会影响包含带有空格的字符串的recarray,因为后面的空格是从chararray中删除的,但保留在字符串类型的ndarrays中。此外,嵌套结构字段的dtype.type现在是继承的。
以recarray形式查看ndarray现在可以自动将数据类型转换为np.record。请参见新的记录数组文档。此外,查看具有非结构化数据类型的recarray不再将结果的类型转换为ndarray-结果将保持为recarray。
使用ufunc的“out”关键字参数时,可以为每个ufunc输出提供一个数组元组。对于具有单个输出的UFUNC,单个数组也是有效的“out”关键字参数。以前,一个数组可以在“out”关键字参数中提供,它将用作具有多个输出的ufunc的第一个输出,被弃用,并将导致 DeprecationWarning 现在和将来的错误。
使用python 3中的字节字符串对ndarray进行索引现在将引发indexerror而不是valueerror。
对于此类(罕见)屏蔽数组,获取单个屏蔽项不再返回损坏的屏蔽数组,而是返回该项的完全屏蔽版本。
与mean类似,中位数和百分点值现在发出运行时警告并返回 NaN 在切片中, NaN 是存在的。若要在忽略无效值的同时计算中位数或百分位数,请使用 nanmedian 或 nanpercentile 功能。
numpy.testing中的所有函数都曾在numpy.ma.testuils中可用,但并不是所有函数都重新定义为使用屏蔽数组。大多数这些函数现在已经从numpy.ma.testutils中删除,保留了一个小的子集,以保持向后兼容性。从长远来看,这有助于避免错误地使用错误的函数,但它可能会导致一些导入问题。
以前,依赖库编译和numpy本身的定制只能通过distuils包中的代码更改来实现。现在numpy.distutils从 site.cfg :
runtime_library_dirs/rpath
LD_LIBRARY_PATH
extra_compile_args ,向源的编译添加额外的标志
extra_compile_args
extra_link_args ,链接库时添加额外标志
extra_link_args
这应该至少部分地完成用户自定义。
np.cbrt 包装c99 cube root函数 cbrt . 相比于 np.power(x, 1./3.) 它很好地定义为负实浮点数,并且速度更快。
旁路 --parallel=n 或 -j n 到 建立程序 扩展的编译现在在 n 并行进程。并行化仅限于一个扩展名内的文件,因此使用Cython的项目将不会受益,因为它从单个文件构建扩展名。
max_rows
A max_rows 参数已添加到 通用电气公司 限制在单个调用中读取的行数。使用此功能,可以通过对函数进行重复调用来读取存储在单个文件中的多个数组。
np.broadcast_to 根据numpy的广播规则手动将数组广播到给定的形状。该功能类似于广播阵列,事实上,广播阵列已重写为内部使用广播阵列,但只需要一个阵列。
当python发出警告时,它会在module属性中记录在导致该警告的模块中发出的警告。 __warningregistry__ . 一旦发生这种情况,就不可能再次发出警告,除非您清除 __warningregistry__ . 这使得测试警告变得困难和脆弱,因为如果您的测试是在另一个已经引起警告的测试之后进行的,那么您将无法发出或测试警告。上下文管理器 clear_and_catch_warnings 在进入时清除模块注册表中的警告,并在退出时重置它们,这意味着可以重新引发警告。
__warningregistry__
clear_and_catch_warnings
fweights
aweights
这个 fweights 和 aweights 参数通过对观测向量应用两种类型的权重,为协方差计算添加了新的功能。一个数组 fweights 指示每个观测向量的重复次数,以及 aweights 提供它们的相对重要性或概率。
python 3.5增加了对pep465中提出的矩阵乘法运算符“@”的支持。已经实现了对这一点的初步支持,以及等效功能 matmul 也被添加用于测试目的,并在早期的Python版本中使用。该函数是初步函数,其可选参数的顺序和数目可能会发生更改。
matmul
norm
默认的规范化有未标度的直接变换和按比例缩放的反向变换 . 通过设置关键字参数,可以获得一元转换。 norm 到 "ortho" (默认为 None )这样,直接变换和反变换都将按 .
"ortho"
np.digitize 现按以下方式实施: np.searchsorted . 这意味着使用二进制搜索来对值进行装箱,与以前的线性搜索相比,对于较大的装箱数,这种方法的缩放效果更好。它还消除了输入数组为一维的要求。
np.poly 现在将一维整数类型的输入数组强制转换为双精度浮点,以防止在计算Monic多项式时整数溢出。通过传入对象类型的数组(例如用python ints填充),仍然可以获得更高的精度结果。
np.interp 现在有了一个新参数 时期 提供输入数据的周期 xp . 在这种情况下,输入数据被适当地归一化为给定的周期,并且在 xp 为了关闭上一个周期和下一个周期,导致正确的插值行为。
pad_width
constant_values
constant_values 参数现在接受numpy数组和浮点值。支持numpy数组作为的输入 pad_width ,如果其值不是整型,则引发异常。
out
这个 out 参数已添加到 np.argmax 和 np.argmin 为了与…保持一致 ndarray.argmax 和 ndarray.argmin . 新参数的行为与这些方法中的行为完全相同。
所有功能 in complex.h 现在检测到。以下函数有新的回退实现。
in complex.h
npy_ctan,
npy ou cacos、npy ou casin、npy ou catan
NPY公司,NPY公司,NPY公司,
NPY-Cacosh、NPY-Cashinh、NPY-Catanh
由于这些改进,返回值会有一些小的变化,特别是对于角情况。
float.hex
弦由 float.hex 看起来像 0x1.921fb54442d18p+1 ,因此这不是用于表示无符号整数类型的十六进制。
0x1.921fb54442d18p+1
为了正确处理整数类型的最小值, np.isclose 现在将在比较期间强制转换为浮点数据类型。这使其行为与 np.allclose .
np.allclose 现在使用 np.isclose 内部和继承通过设置将nan作为相等项进行比较的能力 equal_nan=True . 子类,例如 np.ma.MaskedArray ,现在也被保存。
equal_nan=True
np.genfromtxt 现在正确处理大于 2**31-1 在32位系统上,大于 2**63-1 在64位系统上(它以前与 OverflowError 在这些情况下)。大于的整数 2**63-1 转换为浮点值。
2**31-1
2**63-1
OverflowError
功能 np.load 和 np.save 具有用于控制pickled python对象向后兼容性的其他关键字参数。这使得numpy on python 3能够加载包含在python 2上生成的对象数组的npy文件。
将删除基本类行为类似于普通数组的内置假设。尤其是,设置和获取元素和范围将考虑 __setitem__ 和 __getitem__ 和算术将尊重 __add__ , __sub__ 等。
__setitem__
__getitem__
__add__
__sub__
CBLAS版本的DOT、INNER和VDOT已集成到多阵列模块中。特别是,vdot现在是一个多数组函数,这在以前是没有的。
现在,对通用函数的输入与函数的签名进行更严格的检查:所有核心维度现在都要求存在于输入数组中;具有相同标签的核心维度必须具有完全相同的大小;并且输出核心维度必须通过相同标签、输入核心维度或传入维度来指定。输出数组。
视图返回者 np.einsum 现在只要输入数组是可写的,就可以写。
np.argmin 现在跳过datetime64和timedelta64数组中的nat值,使其与 np.min , np.argmax 和 np.max .
通常,对数组的比较操作执行元素比较,并返回布尔数组。但在某些角情况下,特别是涉及字符串的是结构化数据类型,numpy历史上返回的是标量。例如::
### Current behaviour np.arange(2) == "foo" # -> False np.arange(2) < "foo" # -> True on Python 2, error on Python 3 np.ones(2, dtype="i4,i4") == np.ones(2, dtype="i4,i4,i4") # -> False
从1.9开始的持续工作,到1.10,这些比较现在将提高 FutureWarning 或 DeprecationWarning ,以后将对它们进行修改,使其与其他比较操作更加一致,例如:
### Future behaviour np.arange(2) == "foo" # -> array([False, False]) np.arange(2) < "foo" # -> error, strings and numbers are not orderable np.ones(2, dtype="i4,i4") == np.ones(2, dtype="i4,i4,i4") # -> [False, False]
numpy/lib/utils.py中的safeeval类已弃用,将在下一版本中删除。
alterdot和restoredot函数不再执行任何操作,因此被弃用。
现在不推荐使用这些加载包的方法。
的值 bias 和 ddof 的参数 corrcoef 函数在相关系数所隐含的除法中被取消,因此对返回值没有影响。
bias
ddof
corrcoef
我们现在不赞成这些论点 corrcoef 以及蒙面数组版本 ma.corrcoef .
ma.corrcoef
因为我们在贬低 bias 参数 ma.corrcoef 我们也不赞成 allow_masked 参数作为位置参数,因为它的位置将随着 bias . allow_masked 将在适当的时候成为只包含关键字的参数。
allow_masked
从1.6开始,从其字符串表示形式创建一个dtype对象,例如 'f4' 如果大小与现有类型不对应,则将发出一个取消预测警告,默认情况下将为该类型创建默认大小的数据类型。从这个版本开始,这将引发 TypeError .
'f4'
唯一的例外是对象数据类型,其中 'O4' 和 'O8' 仍将发出弃用警告。此依赖于平台的表示将在下一个版本中引发错误。
'O4'
'O8'
为准备即将进行的更改,对象数据类型的字符串表示法,即 np.dtype(object).str ,不再包含项目大小,即将返回 '|O' 而不是 '|O4' 或 '|O8' 像以前一样。
np.dtype(object).str
'|O'
'|O4'
'|O8'