2016-08-30 192 views
0

我有一個二維數組x中,我想將內容複製一維數組y的:將一維數組爲二維數組

import numpy as np 
x = np.array([[1, 2], [4, 5], [3, 3]], np.int32) 
y = np.array([1, 2, 3, 4, 5, 6]) 

x[:,:] = y # i would like x to be [[1, 2], [3, 4], [5, 6]] 

ValueError: could not broadcast input array from shape (6) into shape (3,2)

如何做到這一點?

回答

1

你必須在y轉換爲陣列的形狀像x

>>> x = y.reshape(x.shape) 
>>> x 
array([[1, 2], 
     [3, 4], 
     [5, 6]]) 

但要注意的是,yx的形狀重塑。

+0

我會用'x [=] y.reshape(x.shape)'來保持原來的意圖。 'x.flat = y'也適用。 – hpaulj

+0

@hpaulj由於OP只是想改變'x',我沒有看到任何理由把'y'分配給它的視圖。或者你的食譜在這方面有什麼優勢,我不知道? – Kasramvd