python中resize数组_python numpy ndarray.resize用法及代码示例

就地更改数组的形状和大小。

参数:new_shape: : tuple of ints, 或 n ints

调整大小后的数组的形状。

refcheck: : bool, 可选参数

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

返回值: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]])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值