目录
- 语法介绍
- 示例
- 示例1
- 示例2
- 示例3
- 示例4
语法介绍
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 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
示例2
np.rashape(array,())和array.reshape()函数是等价的,下面介绍以array.reshape()形式
import numpy as np
# 定义数组 b
b = np.arange(5)
print(b)
# ---------- newshape取整数 -----------------
# 下面两个结果相同
print(b.reshape(5,1))
print(b.reshape(-1,1))
# 注意区分第一种和后面两种的不同
print(b.reshape(5,))
print(b.reshape(1,-1))
print(b.reshape(1,5))
[0 1 2 3 4]
[[0]
[1]
[2]
[3]
[4]]
[[0]
[1]
[2]
[3]
[4]]
[0 1 2 3 4]
[[0 1 2 3 4]]
[[0 1 2 3 4]]
示例3
import numpy as np
c = np.arange(6).reshape(2,3)
print(c)
#以下四种结果相同
print(c.reshape(6))
print(c.reshape(6,))
print(c.reshape(-1))
print(c.reshape(-1,))
#以下两种结果相同
print(c.reshape(1,-1))
print(c.reshape(1,6))
#以下两种结果相同
print(c.reshape(-1,1))
print(c.reshape(6,1))
[[0 1 2]
[3 4 5]]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[0 1 2 3 4 5]
[[0 1 2 3 4 5]]
[[0 1 2 3 4 5]]
[[0]
[1]
[2]
[3]
[4]
[5]]
[[0]
[1]
[2]
[3]
[4]
[5]]
示例4
import numpy as np
c = np.arange(6).reshape(2,3)
print(c)
#以下四种结果相同
print(c.reshape(2,3,1))
print(c.reshape(2,1,3))
print(c.reshape(3,2,1))
print(c.reshape(3,1,2))
print(c.reshape(1,2,3))
# 下面两个结果相同
print(c.reshape(1,3,2))
print(c.reshape(1,3,-1))
[[0 1 2]
[3 4 5]]
[[[0]
[1]
[2]]
[[3]
[4]
[5]]]
[[[0 1 2]]
[[3 4 5]]]
[[[0]
[1]]
[[2]
[3]]
[[4]
[5]]]
[[[0 1]]
[[2 3]]
[[4 5]]]
[[[0 1 2]
[3 4 5]]]
[[[0 1]
[2 3]
[4 5]]]
[[[0 1]
[2 3]
[4 5]]]
标签:示例,reshape,用法,np,索引,数组,print,Numpy
From: https://blog.csdn.net/weixin_43597208/article/details/141939487