Python 如何将numpy 2D数组与numpy 1D数组相乘?

Python 如何将numpy 2D数组与numpy 1D数组相乘?,python,numpy,Python,Numpy,两个阵列: a = numpy.array([[2,3,2],[5,6,1]]) b = numpy.array([3,5]) c = a * b 我想要的是: c = [[6,9,6], [25,30,5]] 但是,我得到了这个错误: ValueError: operands could not be broadcast together with shapes (2,3) (2) 如何将一个nD数组与1D数组相乘,其中len(1D数组)==len(nD数组)?您需要将数组b转

两个阵列:

a = numpy.array([[2,3,2],[5,6,1]])
b = numpy.array([3,5])
c = a * b
我想要的是:

c = [[6,9,6],
     [25,30,5]]
但是,我得到了这个错误:

ValueError: operands could not be broadcast together with shapes (2,3) (2)

如何将一个nD数组与1D数组相乘,其中
len(1D数组)==len(nD数组)

您需要将数组b转换为(2,1)形状数组,在索引元组中使用None或
numpy.newaxis

import numpy
a = numpy.array([[2,3,2],[5,6,1]])
b = numpy.array([3,5])
c = a * b[:, None]
这是另一个策略。

另一个策略是 第二个数组,因此它的维数与第一个数组相同:

c = a * b.reshape((b.size, 1))
print(c)
# [[ 6  9  6]
#  [25 30  5]]
或者,可以就地修改第二个数组的属性:

b.shape = (b.size, 1)
print(a.shape)  # (2, 3)
print(b.shape)  # (2, 1)
print(a * b)
# [[ 6  9  6]
#  [25 30  5]]

谢谢Python中此语法的名称是什么:
[:,None]
?@Ashwin,您可以搜索
numpy.newaxis