NumPy reshape() 函数用于为数组提供新形状,而不更改其数据。使用该函数的语法如下:
语法
numpy.reshape(a, newshape, order='C')
参数
a | 必填。 指定要重塑的数组。 |
newshape | 必填。 指定整数或整数元组。新形状应与原始形状兼容。如果是整数,则结果将是该长度的一维数组。一种形状尺寸可以是-1。在本例中,该值是根据数组的长度和剩余维度推断的。 |
order | 可选。 指定顺序。使用此索引顺序读取数组的元素,并使用此索引顺序将元素放入重构后的数组中。
|
返回值
返回ndarray。如果可能的话,这将是一个新的视图对象;否则,它将是一个副本。请注意,无法保证返回数组的内存布局(C 或 Fortran 连续)。
示例:reshape() 数组
在下面的示例中,reshape() 函数用于使用默认参数重塑数组。
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print("原始数组:")
print(arr)
#从 (2,3) -> (3,2) 重塑数组
print("\n重塑数组:")
print(np.reshape(arr, (3,2)))
#展平数组
print("\n展平数组:")
print(np.reshape(arr, -1))
上述代码的输出将是:
原始数组:
[[1 2 3]
[4 5 6]]
重塑数组:
[[1 2]
[3 4]
[5 6]]
展平数组:
[1 2 3 4 5 6]
示例: reshape() 具有类似 C 的索引排序
默认情况下,reshape 函数使用类似 C 的排序。类似 C 的排序相当于首先整理数组,然后使用类似 C 的索引顺序将元素插入到新数组中。考虑下面的示例。
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print("原始数组:")
print(arr)
#从 (2,3) -> (3,2) 重塑数组
print("\n重塑数组:")
print(np.reshape(arr, (3,2), order='C'))
#解开初始数组
ravelarr = np.ravel(arr, order='C')
print("\n散列数组:")
print(ravelarr)
#重塑ravel数组
print("\n重塑数组 从 散列数组:")
print(np.reshape(ravelarr, (3,2), order='C'))
上述代码的输出将是:
原始数组:
[[1 2 3]
[4 5 6]]
重塑数组:
[[1 2]
[3 4]
[5 6]]
散列数组:
[1 2 3 4 5 6]
重塑数组 从 散列数组:
[[1 2]
[3 4]
[5 6]]
示例:具有类似 F 索引排序的 reshape()
类似 F 的排序相当于首先整理数组,然后使用类似 F 的索引顺序将元素插入到新数组中。考虑下面的示例。
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
print("原始数组:")
print(arr)
#从 (2,3) -> (3,2) 重塑数组
print("\n重塑数组:")
print(np.reshape(arr, (3,2), order='F'))
#解开初始数组
ravelarr = np.ravel(arr, order='F')
print("\n散列数组:")
print(ravelarr)
#重塑ravel数组
print("\n重塑数组 从 散列数组:")
print(np.reshape(ravelarr, (3,2), order='F'))
上述代码的输出将是:
原始数组:
[[1 2 3]
[4 5 6]]
重塑数组:
[[1 5]
[4 3]
[2 6]]
散列数组:
[1 4 2 5 3 6]
重塑数组 从 散列数组:
[[1 5]
[4 3]
[2 6]]