arrays - numpy 乘以不同形状的数组

标签 arrays python-2.7 numpy

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

我想将 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

谢谢

最佳答案

使用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

关于arrays - numpy 乘以不同形状的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38433069/

相关文章:

arrays - 查找数组最大值的索引

Rpy2 - 数据帧列表列表

python - 翻转或反转 numpy 数组中的列

java - java中数组是相等的方法吗

c - 如何通过更改符号以保留方式将数组复制到另一个数组

java - 无法在 int[] 上设置数字

python - 使用 Selenium 时出现异常,没有属性 'urlopen'

python-2.7 - 谁能告诉我 python 中 pika 和 kombu 消息传递库之间有什么区别?

python - 在 numpy 中使用 exp 和最小正 float128 避免下溢

python - 使用 Cython 包装 C++ 模板以接受任何 numpy 数组