Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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,假设我有一个5x10x3数组,我将其解释为5个“子数组”,每个由10行和3列组成。我还有一个单独的1D数组,长度为5,我称之为b 我试图在每个子数组中插入一个新列,其中插入第I(I=0,1,2,3,4)个子数组的列是一个10x1向量,其中每个元素等于b[I] 例如: import numpy as np np.random.seed(777) A = np.random.rand(5,10,3) b = np.array([2,4,6,8,10]) [0]的外观应类似于: [1]应该是这样的

假设我有一个5x10x3数组,我将其解释为5个“子数组”,每个由10行和3列组成。我还有一个单独的1D数组,长度为5,我称之为b

我试图在每个子数组中插入一个新列,其中插入第I(I=0,1,2,3,4)个子数组的列是一个10x1向量,其中每个元素等于b[I]

例如:

import numpy as np
np.random.seed(777)
A = np.random.rand(5,10,3)
b = np.array([2,4,6,8,10])
[0]的外观应类似于:

[1]应该是这样的:

对于其他“子阵列”也是如此。 (注意b[0]=2和b[1]=4)

这个呢

#制作一个与A尺寸相同的数组B
B=np.tile(B,(1,10,1)).转置(2,1,0)#形状:(5,10,1)
#连接两者
np.连接([A,B],轴=-1)#形状:(5,10,4)

一种方法是
np.pad

np.pad(A, ((0,0),(0,0),(0,1)), 'constant', constant_values=[[[],[]],[[],[]],[[],b[:, None,None]]])
# array([[[9.36513084e-01, 5.33199169e-01, 1.66763960e-02, 2.00000000e+00],
#         [9.79060284e-02, 2.17614285e-02, 4.72452812e-01, 2.00000000e+00],
 # etc.
或者(输入更多,但可能更快):

广播到
后的
dstack

np.dstack([A,np.broadcast_to(b[:,None],A.shape[:2])]
np.dstack([A,np.broadcast_to(b[:,None],A.shape[:2])]