Python 是否可以将1D Ndaray(尺寸N)放入1D Ndaray(尺寸N,1)中
我试着把微积分的结果放到一个大矩阵中,最后一个维度可以是1或2或更多。 所以要把我的结果放到矩阵中,我会Python 是否可以将1D Ndaray(尺寸N)放入1D Ndaray(尺寸N,1)中,python,arrays,numpy,Python,Arrays,Numpy,我试着把微积分的结果放到一个大矩阵中,最后一个维度可以是1或2或更多。 所以要把我的结果放到矩阵中,我会 res[i,j,:,:] = y 如果y的大小为(N,2)或大于2,则会找到,但如果y的大小为(N),则会出现一个错误,说明: ValueError: could not broadcast input array from shape (10241) into shape (10241,1) 小例子: import numpy as np N=10 y = np.zeros((N,2
res[i,j,:,:] = y
如果y的大小为(N,2)或大于2,则会找到,但如果y的大小为(N),则会出现一个错误,说明:
ValueError: could not broadcast input array from shape (10241) into shape (10241,1)
小例子:
import numpy as np
N=10
y = np.zeros((N,2))
res = np.zeros((2,2,N,2))
res[0,0,:,:]= y
y = np.zeros((N,1))
res = np.zeros((2,2,N,1))
res[0,0,:,:]= y
y = np.zeros(N)
res = np.zeros((2,2,N,1))
res[0,0,:,:]= y
我得到了上一个例子的错误,但它们都是(y和res)1D向量,对吗
我想知道是否存在一个解决方案,无论最后一个维度的大小如何(1、2或更多),都可以进行此分配
在我的代码中,我做了一次尝试,但可能存在另一种方式
try:
self.res[i,j,:,:] = self.ODE_solver(len(self.t))
except:
self.res[i, j, :, 0] = self.ODE_solver(len(self.t))
对于适用于所有三种场景的通用解决方案,请使用-
res[0,0,:,:] = y.reshape(y.shape[0],-1)
因此,基本上,我们正在制作
y
2D
,同时保持第一个轴的长度不变,并根据剩余长度更改第二个轴的长度。对于适用于所有三种场景的通用解决方案,请使用-
res[0,0,:,:] = y.reshape(y.shape[0],-1)
因此,基本上,我们正在制作
y
2D
,同时保持第一个轴的长度不变,并根据剩余长度更改第二个轴。您可以将y
重塑为res
的最后两个维度
N=10
y=np.零((N,2))
res=np.零((2,2,N,2))
res[0,0,:,:]=y.res.shape[-2:]
y=np.零((N,1))
res=np.零((2,2,N,1))
res[0,0,:,:]=y.res.shape[-2:]
y=np.零(N)
res=np.零((2,2,N,1))
res[0,0,:,:]=y.res.shape[-2:]
您可以将y
重塑为res
的最后两个维度
N=10
y=np.零((N,2))
res=np.零((2,2,N,2))
res[0,0,:,:]=y.res.shape[-2:]
y=np.零((N,1))
res=np.零((2,2,N,1))
res[0,0,:,:]=y.res.shape[-2:]
y=np.零(N)
res=np.零((2,2,N,1))
res[0,0,:,:]=y.res.shape[-2:]
在初始化self.res
之前,您不知道self.ODE\u解算器(len(self.t))的形状;
在初始化self.res
之前,您不知道self.ODE\u解算器(len(self.t))的形状?