numpy.reshape #
- 麻木的。重塑( a , newshape , order = 'C' ) [来源] #
为数组提供新的形状而不更改其数据。
- 参数:
- 类似数组
要重塑的数组。
- newshape int 或整数元组
新形状应与原始形状兼容。如果是整数,则结果将是该长度的一维数组。一种形状尺寸可以是-1。在这种情况下,该值是根据数组的长度和剩余维度推断出来的。
- 顺序{'C', 'F', 'A'},可选
使用此索引顺序读取a的元素,并使用此索引顺序将元素放入重构后的数组中。 'C' 表示使用类似 C 的索引顺序读取/写入元素,最后一个轴索引变化最快,回到第一个轴索引变化最慢。 'F' 表示使用类似 Fortran 的索引顺序读取/写入元素,第一个索引变化最快,最后一个索引变化最慢。请注意,“C”和“F”选项不考虑底层数组的内存布局,仅涉及索引顺序。 'A' 表示如果a在内存中是 Fortran连续的,则以类似 Fortran 的索引顺序读/写元素,否则按类似 C 的顺序。
- 返回:
- reshape_array ndarray
如果可能的话,这将是一个新的视图对象;否则,它将是一个副本。请注意,不保证返回数组的内存布局(C 或 Fortran 连续)。
也可以看看
ndarray.reshape
等效方法。
笔记
在不复制数据的情况下更改数组的形状并不总是可能的。
order关键字给出索引排序,用于从a获取值,然后将值放入输出数组。例如,假设您有一个数组:
>>> a = np.arange(6).reshape((3, 2)) >>> a array([[0, 1], [2, 3], [4, 5]])
您可以将重塑视为首先对数组进行整理(使用给定的索引顺序),然后使用与整理相同的索引顺序将整理后的数组中的元素插入到新数组中。
>>> np.reshape(a, (2, 3)) # C-like index ordering array([[0, 1, 2], [3, 4, 5]]) >>> np.reshape(np.ravel(a), (2, 3)) # equivalent to C ravel then C reshape array([[0, 1, 2], [3, 4, 5]]) >>> np.reshape(a, (2, 3), order='F') # Fortran-like index ordering array([[0, 4, 3], [2, 1, 5]]) >>> np.reshape(np.ravel(a, order='F'), (2, 3), order='F') array([[0, 4, 3], [2, 1, 5]])
例子
>>> a = np.array([[1,2,3], [4,5,6]]) >>> np.reshape(a, 6) array([1, 2, 3, 4, 5, 6]) >>> np.reshape(a, 6, order='F') array([1, 4, 2, 5, 3, 6])
>>> np.reshape(a, (3,-1)) # the unspecified value is inferred to be 2 array([[1, 2], [3, 4], [5, 6]])