- 通过ndarray.shape 可以查看数组的形状,返回值是一个元组()
- 通过ndarray.shape=()可以修改原始数组的形状。
- 通过ndarray.reshape()可以更改数组的形状,但是返回一个修改后的数组,不会更改原始数组的形状。新生成的数组和原始数组数据共享,修改其中一个,另一个也随之改变。
>>> a = np.arange(10)
>>> a
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = a.reshape((2,5))
>>> b
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
# a的形状不会发生改变
>>> a
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b is a
>>> False
# 说明b和a是数据共享关系
>>> b.base is a
>>> True
>>> id(b)
>>> 1979399084752
>>> id(a)
>>> 1979381502880
>>> a.shape=(5,2)
>>> a
>>>
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
# 修改b的值,a的值也相应改变
>>> b[0,3]=999
>>> b
>>>
array([[ 0, 1, 2, 999, 4],
[ 5, 6, 7, 8, 9]])
>>> a
>>>
array([[ 0, 1],
[ 2, 999],
[ 4, 5],
[ 6, 7],
[ 8, 9]])