numpy.resize
numpy.resize(a, new_shape) [source]
返回具有指定形状的新数组。
如果新数组大于原始数组,则新数组将填充a的重复副本。 请注意,此行为与a.resize(new_shape)不同,后者用零而不是重复的a填充。
参数 : | a :array_like 要调整大小的数组。 new_shape : 调整大小后的数组的形状。 |
返回值 : | reshaped_array : 新数组由旧数组中的数据组成,如有必要, 可重复进行此操作以填充所需数量的元素。 数据按照存储在内存中的顺序被重复。 |
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)