2017-02-24 104 views

回答

2

延长切片2DNone/np.newaxis,然后减去 -

data -= data[:,0,None] 

另外,我们还可以重塑来获取2D -

data -= data[:,0].reshape(-1,1) 

采样运行检查形状,因此没有。的变暗 -

In [103]: data = np.random.rand(4,5) 

In [104]: data[:,0].shape # Originally 
Out[104]: (4,) 

In [105]: data[:,0,None].shape 
Out[105]: (4, 1) 

In [106]: data[:,0].reshape(-1,1).shape 
Out[106]: (4, 1) 

把并排的侧前及使用该方法的后 -

data   : (4,5) 
data[:,0]  : (4) 

的形状不对齐的自动播放的情况发生。

让我们延长 -

data   : (4,5) 
data[:,0,None] : (4,1) 

的形状排列,现在为广播减法的情况发生,因此我们必须在第一列中减去每一列。该docs on broadcasting应该有更多的信息。

+0

哇,真是神秘!但工作11分钟虽然接受 –