Numpy:从没有repmats的矩阵中减去列
Numpy: subtract column from a matrix without repmats
抱歉缺乏研究 - 我很着急。
当我这样做时
data = data-data[:,0]
我收到广播错误。我该怎么做才能让 numpy 理解我?
用None/np.newaxis
将切片扩展到2D
,然后减去-
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
应该有更多这方面的信息。
抱歉缺乏研究 - 我很着急。 当我这样做时
data = data-data[:,0]
我收到广播错误。我该怎么做才能让 numpy 理解我?
用None/np.newaxis
将切片扩展到2D
,然后减去-
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
应该有更多这方面的信息。