python - 从 numpy 数组中减去列

标签 python python-3.x numpy

这个问题是我之前一篇文章的后续问题:

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/

相关文章:

尝试解压缩时 Python LZMA Corrupt data error

python - 从循环中创建值列表

python - 使用切片列表索引 numpy 数组

python - 如何在多层 python 字典中找到最小值,以及它的 "path"(即叶值的键列表)

具有多个类和 Tkinter 的 Python 属性错误

python - 如何有效地生成所有可能的坐标对而不在numpy中重复

python - 如何为 TfidfVectorizer 使用列表列表或集合列表?

python - Pandas 根据重复的索引数据框创建多个数据框

python - 如何获取有效 Numpy 数据类型的范围?

python - 如何使用 python 在两个数组中找到匹配的数据点并返回第三个?