当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy recarray.resize用法及代码示例


本文简要介绍 python 语言中 numpy.recarray.resize 的用法。

用法:

recarray.resize(new_shape, refcheck=True)

就地更改阵列的形状和大小。

参数

new_shape 整数元组,或n整数

调整大小数组的形状。

refcheck 布尔型,可选

如果为 False,则不会检查引用计数。默认为真。

返回

None

抛出

ValueError

如果 a 不拥有自己的数据或对其的引用或视图存在,则必须更改数据内存。仅PyPy:如果必须更改数据内存,则始终会引发,因为没有可靠的方法来确定对其的引用或视图是否存在。

SystemError

如果指定了 order 关键字参数。这种行为是 NumPy 中的一个错误。

注意

如果需要,这会为数据区重新分配空间。

只能调整连续数组(内存中连续的数据元素)的大小。

引用计数检查的目的是确保不要将此数组用作另一个 Python 对象的缓冲区,然后重新分配内存。但是,引用计数可以通过其他方式增加,因此如果您确定没有与另一个 Python 对象共享此数组的内存,那么您可以安全地将 refcheck 设置为 False。

例子

缩小数组:数组被展平(按照数据存储在内存中的顺序)、调整大小和重塑:

>>> a = np.array([[0, 1], [2, 3]], order='C')
>>> a.resize((2, 1))
>>> a
array([[0],
       [1]])
>>> a = np.array([[0, 1], [2, 3]], order='F')
>>> a.resize((2, 1))
>>> a
array([[0],
       [2]])

扩大数组:如上所述,但缺失的条目用零填充:

>>> b = np.array([[0, 1], [2, 3]])
>>> b.resize(2, 3) # new_shape parameter doesn't have to be a tuple
>>> b
array([[0, 1, 2],
       [3, 0, 0]])

引用数组可以防止调整大小……

>>> c = a
>>> a.resize((1, 1))
Traceback (most recent call last):
...
ValueError: cannot resize an array that references or is referenced ...

除非 refcheck 为 False:

>>> a.resize((1, 1), refcheck=False)
>>> a
array([[0]])
>>> c
array([[0]])

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.recarray.resize。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。