numpy:将每行除以一个向量元素

发布于 2021-01-29 19:04:45

假设我有一个numpy数组:

data = np.array([[1,1,1],[2,2,2],[3,3,3]])

我有一个对应的“向量”:

vector = np.array([1,2,3])

我如何data沿每一行进行减法或除法运算,所以结果是:

sub_result = [[0,0,0], [0,0,0], [0,0,0]]
div_result = [[1,1,1], [1,1,1], [1,1,1]]

长话短说:如何使用对应于每一行的1D标量数组在2D数组的每一行上执行操作?

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    干得好。您只需要与广播结合使用None(或np.newaxis):

    In [6]: data - vector[:,None]
    Out[6]:
    array([[0, 0, 0],
           [0, 0, 0],
           [0, 0, 0]])
    
    In [7]: data / vector[:,None]
    Out[7]:
    array([[1, 1, 1],
           [1, 1, 1],
           [1, 1, 1]])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看