Python基礎——Numpy的shape和reshape()

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

 

發佈了6 篇原創文章 · 獲贊 1 · 訪問量 4336
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章