为了账号安全,请及时绑定邮箱和手机立即绑定

形状不匹配 Python

形状不匹配 Python

Go
吃鸡游戏 2021-10-12 15:27:30
所以我试图用我自己定义的一些标准值创建一个 3D 数组(实际上是其他人,但这并不重要)这是我的代码:Tt = 120 # Total duration (sec)delta = 0.001 # Time bin (sec)T = Tt/delta # number of time binsNcells = 8;Cmap = np.zeros([Ncells,Ncells,int(T)])ExcInhID = np.expand_dims([1, -1, 1, -1, 1, -1, 1], axis =1)a = list(range(0,int(T)))for t in a:    Cmap[:,:,t] = (-1)*np.identity(Ncells)    Cmap[1:,0,t] = list(ExcInhID*np.ones([Ncells-1,1])*(1 - min(max(t-T/3,0)*(1/(T/3)),0)))    CC5 = list(np.arange(0,Ncells)) ; del CC5[4];    Cmap[CC5,4,t] = list(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)))    Cmap[6,2,t] = 1; Cmap[5,7,t] = -1; Cmap[1,5,t] = 1;这确实有效,直到Cmap[CC5,4,t] = list(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)))  Cmap[CC5,4,t] = list(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)))我在哪里得到错误:ValueError:形状不匹配:形状 (7,1) 的值数组无法广播到形状 (7,) 的索引结果这很奇怪,因为它确实在另一条线上工作: Cmap[1:,0,t] = list(ExcInhID*np.ones([Ncells-1,1])*(1 - min(max(t-T/3,0)*(1/(T/3)),0)))我已经尝试了一切,但不知道该怎么办了.. 你们有什么建议吗?
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

我不确定为什么您在第一个实例中没有出错而在第二个实例中才出错。但是如果你改变你的线路如下,事情就会奏效。



Cmap[1:,0,t] = list(ExcInhID*np.ones([Ncells-1,1])*(1 - min(max(t-T/3,0)*(1/(T/3)),0)))

....

Cmap[CC5,4,t] = list(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)))


Cmap[1:,0,t] = np.stack(ExcInhID*np.ones([Ncells-1,1])*(1 - min(max(t-T/3,0)*(1/(T/3)),0)), axis=1)

....

Cmap[CC5,4,t] = np.stack(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)), axis=1)


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信