Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将列添加到现有numpy二维阵列_Python_Numpy - Fatal编程技术网

Python 将列添加到现有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

基于这个问题:我想扩展一个现有的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[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)