2016-08-30 193 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