当两个 numpy 数组的维度不匹配时如何回收元素?
How to recycle elememts when dimensions of two numpy arrays do not matches?
我想用 numpy
执行类似于以下 R
代码的操作,其中 y
被回收。
R> x=rbind(c(1,2,3), c(4,5,6))
R> y=c(1,2)
R> x/y
[,1] [,2] [,3]
[1,] 1 2.0 3
[2,] 2 2.5 3
显然,以下代码不适用于 numpy
。有人知道等效的 python 代码是什么吗?谢谢。
>>> x=numpy.array([[1,2,3], [4, 5, 6]])
>>> y=numpy.array([1,2])
>>> x/y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (2,3) (2,)
怎么样
x=numpy.array([[1,2,3], [4, 5, 6]])
y=numpy.array([1,2])
x/y[:, None]
y[:, None]
将 (2,)
数组转换为 (2,1)
数组,从而允许使用 x
.
进行广播除法
我想用 numpy
执行类似于以下 R
代码的操作,其中 y
被回收。
R> x=rbind(c(1,2,3), c(4,5,6))
R> y=c(1,2)
R> x/y
[,1] [,2] [,3]
[1,] 1 2.0 3
[2,] 2 2.5 3
显然,以下代码不适用于 numpy
。有人知道等效的 python 代码是什么吗?谢谢。
>>> x=numpy.array([[1,2,3], [4, 5, 6]])
>>> y=numpy.array([1,2])
>>> x/y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (2,3) (2,)
怎么样
x=numpy.array([[1,2,3], [4, 5, 6]])
y=numpy.array([1,2])
x/y[:, None]
y[:, None]
将 (2,)
数组转换为 (2,1)
数组,从而允许使用 x
.