Python 将列添加到现有numpy二维阵列
基于这个问题:我想扩展一个现有的numpy数组,并用数量可变的随机列填充它 我的做法是:Python 将列添加到现有numpy二维阵列,python,numpy,Python,Numpy,基于这个问题:我想扩展一个现有的numpy数组,并用数量可变的随机列填充它 我的做法是: target = 'data' amount = 4 data = {'data': array([[1, 2], [5, 9], [4, 4], [8, 42], ..., N = data[target].shape biggerarr = np.random.rand(N[0], N[1]+amount) existingArr = np.array(data[targe
target = 'data'
amount = 4
data = {'data': array([[1, 2],
[5, 9],
[4, 4],
[8, 42],
...,
N = data[target].shape
biggerarr = np.random.rand(N[0], N[1]+amount)
existingArr = np.array(data[target])
biggerarr[:,:] = existingArr
data[target] = a
但不管我怎么摆弄它,我总是得到它
ValueError:无法将输入数组从形状(200,2)广播到形状(200,6)
或者当我执行existingArr[:,:]=biggerrr
ValueError:无法将输入数组从形状(200,6)广播到
形状(200,2)
当您尝试执行
biggerarr[:,:]=existingArr
时,左侧有(200,6)数组,右侧有(200,2)数组。您需要做的是只设置biggerr的一部分。这可以通过使用以下sintax来完成
biggerarr[:, :N[1]] = existingArr
这是编写biggerrr[0:-1,0:N[1]]=existingArr
的简短版本。你可以在中找到更多关于它的信息
添加列的另一种方法是使用连接。在这种情况下,您需要水平堆叠阵列,因此您应该指定axis=1以使其工作
randomArr = np.random.rand(N[0], amount)
biggerArr = np.concatenate((data[target], randomArr), axis=1)