- 通過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]])