例如,如果我們有一個numpyarray A,并且我們想要一個具有相同元素的numpy數組B。以下(見下文)方法之間的區別是什么?什么時候分配額外的內存,什么時候不分配?B = AB[:] = A(與B[:]=A[:]?相同)numpy.copy(B, A)
3 回答

梵蒂岡之花
TA貢獻1900條經驗 獲得超5個贊
=A
創建參考B[:]=A
復制numpy.copy(B,A)
復制
后兩個需要額外的內存。
要制作深拷貝,您需要使用 B = copy.deepcopy(A)

慕容708150
TA貢獻1831條經驗 獲得超4個贊
關于你第二個例子:B[:] = A
它不使對象類型,例如數組的深層副本A = np.array([[1,2,3],[4,5]]); B = np.array([None,None], dtype='O')
?,F在嘗試B[:] = A; B[0][0]=99
,這將同時更改A和B中的第一個元素!據我所知,沒有其他方法可以保證深度復制,甚至是一個numpy數組,也只能保證copy.deepcopy
添加回答
舉報
0/150
提交
取消