语法介绍
numpy.reshape(a, newshape, order=‘C’)
在不改变数据的情况下给数组一个新的形状。就是先将数组按给定索引顺序一维展开,然后按与展开时相同的索引顺序将展开的元素填充到新数组中;即等价于 np.reshape(np.revel(array), newshape, order)
.
参数解释:
- newshape : 整数或整数元组,用于指示新数组的形状,格式(行row,列col,… )。
新的形状应该与原来的形状兼容,即元素个数必须相同。如果是一个整数,那么结果将是一个该长度的一维数组。
形状的其中一个维度可以是 -1,在这种情况下,新形状的该维度值是由数组的长度和其余维度自动推断出来的。
- order: {‘C’, ‘F’, ‘A’}, 可选参数。
使用a的索引顺序读取其元素,并使用这个索引顺序将元素放入重塑的数组中。
‘C’ , 行优先顺序 (表示使用类似 C 语言的索引顺序来读/写元素,最后一个轴的索引变化最快,回到第一个轴的索引变化最慢)。
‘F’ , 列优先顺序 (表示使用类似 Fortran 语言的索引顺序来读/写元素,第一个索引变化最快,最后一个索引变化最慢)。
‘A’ , 按存储顺序 (表示如果数组 ‘a’ 在内存中是类似 Fortran 语言的数组分布方式,则按照类似 Fortran 语言的索引顺序读/写元素,否则按照类似 C 语言的顺序)。
注意 ‘C’ 和 ‘F’ 选项没有考虑底层数组的内存布局,只是参考了索引的顺序。
示例
示例1
import numpy as np
# 定义数组 b
b = np.arange(5)
print(b)
# ---------- newshape取整数 -----------------
# 返回 1 维数组(以下8种表达方式等价)
print(np.reshape(b,5))
print(np.reshape(b,-1))
print(np.reshape(b,(5,)))
print(np.reshape(b,(-1,)))
print(b.reshape(5))
print(b.reshape(5,))
print(b.reshape(-1))
print(b.reshape(-1,))
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3<