【问题标题】:Divide the vector column of a matrix除以矩阵的向量列
【发布时间】:2021-01-14 13:22:08
【问题描述】:

假设矩阵

X = np.array([[ 1,  2,  3],
              [ 4,  5,  6],
              [ 7,  8,  9],
              [10, 11, 12]])

和向量divisor = [5, 10, 15]。有没有一种方法使用numpyX 的第一列除以divisor[0],将X 的第二列除以divisor[1],将X 的第二列除以divisor[3]

【问题讨论】:

  • 你试过X / divisor吗?
  • @Chris 好的,它有效!如果我想分割线,我必须做 (X.T / divisor).T。有更好的解决方案吗?
  • 分割是什么意思?
  • @Chris 我不想像问题中那样划分列,而是想划分同一矩阵的行。更合适的向量可能是dividor = [3, 2, 6, 9]
  • X / np.reshape(divisor, (-1, 1))?

标签: python arrays numpy matrix vector


【解决方案1】:

只需将它们分开,让 numpy 负责广播:

X/divisor

输出:

[[0.2 0.2 0.2]
 [0.8 0.5 0.4]
 [1.4 0.8 0.6]
 [2.  1.1 0.8]]

如果您想划分行(而不是列),请使用:

X/divisor[:,None]

这为除数添加了一个维度,因此 numpy 可以正确广播它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 2018-06-17
    • 1970-01-01
    • 2019-12-15
    • 2014-07-06
    • 1970-01-01
    相关资源
    最近更新 更多