如何在两个numpy阵列的尺寸不匹配时回收元素?
我想做一些类似于以下R
代码numpy
,其中y
是回收利用。如何在两个numpy阵列的尺寸不匹配时回收元素?
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
。
此功能在哪里记录? – user1424739
@ user1424739 https://docs.scipy.org/doc/numpy-1.13.0/user/basics.broadcasting.html – Divakar
@ user1424739另一个信息来源是:https://docs.scipy.org/doc/ numpy-1.13.0/reference/arrays.indexing.html请注意,'y [:,None]'相当于'y [:, numpy.newaxis]'。 –
你能解释一下R代码在干什么吗? – Divakar
它将'x'的每一列用'y'分开。 – user1424739
问题的标题有点令人困惑 - “回收y”是什么意思? –