1 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
flatten 返回?cái)?shù)組的副本。reshape如果可能,將返回視圖。因此,例如,如果y = x.reshape(-1)是一個(gè)視圖,那么修改y也會(huì)修改x:
In [149]: x = np.arange(3)
In [150]: y = x.reshape(-1)
In [151]: y[0] = 99
In [152]: x
Out[152]: array([99, 1, 2])
但既然y = x.flatten()是副本,修改y永遠(yuǎn)不會(huì)修改x:
In [153]: x = np.arange(3)
In [154]: y = x.flatten()
In [155]: y[0] = 99
In [156]: x
Out[156]: array([0, 1, 2])
以下是何時(shí)reshape返回副本而不是視圖的示例:
In [161]: x = np.arange(24).reshape(4,6)[::2, :]
In [163]: y = x.reshape(-1)
In [164]: y[0] = 99
In [165]: x
Out[165]:
array([[ 0, 1, 2, 3, 4, 5],
[12, 13, 14, 15, 16, 17]])
由于x不受對(duì) 分配的影響y,我們知道y是 的副本 x,而不是視圖。
添加回答
舉報(bào)