【问题标题】:numpy multiply arrays with different shapes [duplicate]numpy乘以不同形状的数组[重复]
【发布时间】:2016-11-20 20:17:40
【问题描述】:

我有一个数组A,形状为(w,h) = 3000,2000 和另一个形状为d = 100的数组B

我想将A的每个值乘以B,得到一个数组C的形式为(w,h,d) = 3000,2000,100的结果

现在我正在使用下面的非常慢的代码,我该如何向量化这个操作?

w,h,d = 3000,2000,100

A = np.ones((w,h))

B = np.arange(d)

C = np.zeros((w,h,d))

for i in xrange(w):
    for j in xrange(h):
        C[i,j] = A[i,j] * B

谢谢

【问题讨论】:

    标签: arrays python-2.7 numpy


    【解决方案1】:

    使用 numpy broadcast

    试试这个

    from numpy.random import rand
    a = rand(4,5)
    b = rand(6)
    c = a[...,None] * b
    print (c.shape)
    

    或者等价

    c = a.reshape(4,5,1)*b
    

    【讨论】:

      猜你喜欢
      • 2018-12-23
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多