在numpy中,shape和reshape()函数很常用。二者的功能都是对于数组的形状进行操作。
shape函数可以了解数组的结构;
reshape()函数可以对数组的结构进行改变。
import numpy as np
#设置一个数组
a = np.array([1,2,3,4,5,6,7,8])
a.shape '''结果:(8,)'''
type(a.shape) '''结果:tuple'''
a.shape[0] '''结果:8'''
b = np.array([[1,2],[2,3],[3,4]])
b.shape '''结果:(3, 2)'''
b.shape[0] '''结果:3'''
b.shape[2] '''结果:2'''
结论:我们可以通过shape函数得出数组的形状,得出的结果是一个tuple格式的数据,之后我们可以获取其中的数据。
a = np.array([1,2,3,4,5,6,7,8])
a.reshape(2,4)
'''结果:array([[1, 2, 3, 4],
[5, 6, 7, 8]])
'''
a.reshape(4,2)
'''结果:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
'''
结论:reshape()函数可以改变数组的形状,并且原始数据不发生变化。
但是,reshape()函数中的参数需要满足乘积等于数组中数据总数。
如:当我们将8个数使用(2,3)重新排列时,python会报错
而且,reshape()函数得出的数组与原数组使用的是同一个存储空间,改变一个,另一个也随之改变。
shape和reshape()函数都是对于数组(array)进行操作的,对于list结构是不可以的