这个问题是我之前一篇文章的后续问题:
Multiply each column of a numpy array with each value of another array .
假设我有以下数组:
In [252]: k
Out[252]:
array([[200, 800, 400, 1600],
[400, 1000, 800, 2000],
[600, 1200, 1200,2400]])
In [271]: f = np.array([[100,50],[200,100],[300,200]])
In [272]: f
Out[272]:
array([[100, 50],
[200, 100],
[300, 200]])
如何从 k 中减去 f 以获得以下结果?
In [252]: g
Out[252]:
array([[100, 750, 300, 1550],
[200, 900, 600, 1900],
[300, 1000, 900,2200]])
理想情况下,我希望以尽可能少的步骤进行减法,并与我在其他帖子中提供的解决方案保持一致,但欢迎任何解决方案。
最佳答案
你可以像这样使用np.tile
:
In [1]: k - np.tile(f, (1, 2))
Out[1]:
array([[ 100, 750, 300, 1550],
[ 200, 900, 600, 1900],
[ 300, 1000, 900, 2200]])
此外,如果您碰巧确定 f
的每个维度平均划分 k
的相应维度(我假设您必须这样做,因为您希望减去有道理),那么你可以稍微概括一下:
In [2]: k - np.tile(f, np.array(k.shape) // np.array(f.shape))
Out[2]:
array([[ 100, 750, 300, 1550],
[ 200, 900, 600, 1900],
[ 300, 1000, 900, 2200]])
关于python - 从 numpy 数组中减去列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48938264/