numpy.resize() 函数用于调整数组的形状和大小。如果新形状的大小大于原数组的大小,resize 会重复填充数据;如果小于,则会截断数据。适用于简单地重复填充或裁剪数据,不关心轴的结构。不适用于 需要保持数据空间关系的情况,比如图像缩放、时间序列重采样等。本文主要介绍一下NumPy中resize方法的使用。

numpy.resize

numpy.resize(a, new_shape)      [source]

返回具有指定形状的新数组。

如果新数组大于原始数组,则新数组将填充a的重复副本。 请注意,此行为与a.resize(new_shape)不同,后者用零而不是重复的a填充。

参数 :

a :array_like

要调整大小的数组。

new_shapeint 或  int类型的tuple

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

返回值 :

reshaped_arrayndarray

新数组由旧数组中的数据组成,如有必要,

可重复进行此操作以填充所需数量的元素。 

数据按照存储在内存中的顺序被重复。

Notes

此功能不会单独考虑轴,即它不应用interpolation/extrapolation。 它使用所需数量的元素填充返回数组,这些元素取自于它们在内存中的布局,而不考虑步幅和轴。 (这是在新形状较小的情况下。对于较大的形状,请参见上文。)因此,此功能不适用于调整图像或数据的大小,其中每个轴代表一个单独的不同实体。

例子

1)基本示例

import numpy as np

arr = np.array([1, 2, 3, 4])
new_arr = np.resize(arr, (2, 3))

print(new_arr)

2)截断数据

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = np.resize(arr, (2, 2))

print(new_arr)

3)与 reshape 的区别

numpy.reshape() 不能改变元素总数,如果形状不匹配会报错。numpy.resize() 可以自由扩展或截断数据。

import numpy as np

arr = np.array([1, 2, 3, 4])

# np.reshape() 不能改变大小,报错
# new_arr = np.reshape(arr, (2, 3)) 
# ValueError

# np.resize() 可以扩展
new_arr = np.resize(arr, (2, 3))
print(new_arr)

4)处理多维数组

import numpy as np

arr = np.array([[1, 2], [3, 4]])
new_arr = np.resize(arr, (3, 3))

print(new_arr)

推荐文档

相关文档

大家感兴趣的内容

随机列表