Python 将2个Ndarray合并为一个,其第一个组件是两个初始Ndarray

Python 将2个Ndarray合并为一个,其第一个组件是两个初始Ndarray,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我有两个ndarray,A和B。我想创建一个ndarray,C,这样C[0]=A和C[1]=B 换句话说,如果A.shape和B.shape都给出(A,B),我想创建一个ndarray,C,其形状是(2,A,B) 有没有一种方法可以构建这个?对于Nndarray和shape(a,b)是否有一种有效的方法来实现这一点,以便最终的ndarray具有shape(N,a,b)?您可以使用 a=np.one((3,4)) b=np.零((3,4)) c=np.堆栈((a,b),轴=0) c、 形状#(2,

我有两个
ndarray
,A和B。我想创建一个
ndarray
,C,这样
C[0]=A
C[1]=B

换句话说,如果
A.shape
B.shape
都给出
(A,B)
,我想创建一个
ndarray
,C,其形状是
(2,A,B)

有没有一种方法可以构建这个?对于N
ndarray
和shape
(a,b)
是否有一种有效的方法来实现这一点,以便最终的
ndarray
具有shape
(N,a,b)

您可以使用

a=np.one((3,4))
b=np.零((3,4))
c=np.堆栈((a,b),轴=0)
c、 形状#(2,3,4)
数组
c
具有以下数据:

数组([[1,1,1,1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
您可以使用

a=np.one((3,4))
b=np.零((3,4))
c=np.堆栈((a,b),轴=0)
c、 形状#(2,3,4)
数组
c
具有以下数据:

数组([[1,1,1,1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])

要实现您想要的,而不必指定
,您可以按顺序深度使用哪些堆栈阵列:

a = np.array([[1, 2], [3, 4]])
b = np.asarray([[5, 6], [7, 8]])

np.dstack((a, b))

array([[[1, 5],
        [2, 6]],

       [[3, 7],
        [4, 8]]])

要实现您想要的,而不必指定轴,您可以使用按顺序深度排列的堆栈阵列:

a = np.array([[1, 2], [3, 4]])
b = np.asarray([[5, 6], [7, 8]])

np.dstack((a, b))

array([[[1, 5],
        [2, 6]],

       [[3, 7],
        [4, 8]]])

在尝试之后,我发现一种针对N个数组的方法是使用
np.stack((a_1,…,a_N),axis=0)
。但是有没有比需要在这行代码中编写所有数组更有效的方法呢?哪种方法更有效?您可以将所有数组放入一个列表中,然后将该列表传递给
np.stack
。这有用吗<代码>数组=[a_1,…,a_N];np.stack(array)我的每个ndarray的名称是
a_i
的形式,并且我的代码需要对所有这样的数组进行归纳(取决于将被提供给程序的数据),因此我试图找到一种不涉及我返回代码并显式编写的方法,比如说,
np.stack((a_1,a_2,a_3,a_4),轴=0)
如果我总共有4个数组。你必须用这些细节更新你的问题,或者作为一个新问题提问。我的建议是把数组放在一个列表中吗?列表中可以有N个数组,列表中的位置将替换变量名。是的,这就是我尝试的。我想我必须找到一种创建循环的方法,其每次迭代都会将ndarray a_i添加到列表中。谢谢!尝试之后,我发现对N个ndarray执行此操作的方法是使用
np.stack((a_1,…,a_N),axis=0)
。但是有没有比需要在这行代码中写入所有数组更有效的方法?哪种方法更有效?您可以将所有数组放入一个列表中,然后将该列表传递给
np.stack
。这有帮助吗?
数组=[a_1,…,a_N];np.stack(数组)
我的每个数组的名称都是
a_i
的形式,我的代码需要可以概括为任意数量的数组(取决于将提供给程序的数据),因此我试图找到一种不需要返回代码并显式编写的方法,比如说,
np.stack((a_1,a_2,a_3,a_4),axis=0)
如果我总共有4个数组。你必须用这些细节更新你的问题,或者作为一个新问题提问。我的建议是把数组放在一个列表中吗?列表中可以有N个数组,列表中的位置将替换变量名。是的,这就是我尝试的。我想我必须找到一种创建循环的方法,其每次迭代都会将数据数组a_i添加到列表中。谢谢!输出将具有shape
(a,b,N)
,但OP需要
(N,a,b)
。输出将具有shape
(a,b,N)
,但OP需要
(N,a,b)
。只需执行
np.array([a1,a2,a3,…)
。一旦有了要加入的数组列表,就可以轻松地使用
np.array
np.stack
。只需执行
np.array([a1,a2,a3,…])
。一旦有了要加入的数组列表,就可以轻松地使用
np.array
np.stack