2015-06-30 22 views
0

试图通过我的R技巧使我的Python达到嗅觉,并且意识到我不知道如何在不使用Numpy的情况下做简单的矩阵算术。如何在不使用Numpy的情况下执行嵌套列表,数组和列表的乘法运算

x = [[1,2,3],[4,5,6]] 
y = [[1,2],[3,4],[5,6]] 

我试图

X = (x*y for x,y in zip([[1,2,3],[4,5,6]],[[1,2],[3,4],[5,6]])) 

,但得到<generator object <genexpr> at 0xb205fc34>

我也没能成功通过列表来乘的阵列。

x = [[1],[2],[3] 
y = [1,2,3] 

我试图让这两个外产品中使用

Y = (x.doty for x,y in zip([[1],[2],[3]],[[1,2,3]])) 

print y提前返回'6'

谢谢!

编辑:我期待复制以下(用R)

我期待复制此(用R)

x = matrix(c(1,2,3,4,5,6), 
    nrow = 2, 
    ncol = 3, 
    byrow = TRUE) 

y = matrix(c(1,2,3,4,5,6), 
      nrow = 3, 
      ncol = 2, 
      byrow = TRUE) 

z = x%*%y 

print(z) 
[,1] [,2] 
[1,] 22 28 
[2,] 49 64 

y1 = (1,2,3) 
x1 = t(y1) 
outer.product = x1 %*% y1 

print(outer.product) 
[,1] [,2] [,3] 
[1,] 1 2 3 
[2,] 2 4 6 
[3,] 3 6 9 
+0

什么是您想要的输出? – YXD

+0

编辑了这个问题来展示我期待的事情!谢谢! – scribbles

回答

0

Python lists and NumPy arrays are different。如果您正在使用NumPy阵列,那么您可以执行如下操作:

>>> x = [[1,2,3],[4,5,6]] 
>>> y = [[1,2],[3,4],[5,6]] 
>>> X = np.array(x) 
>>> Y = np.array(y) 
>>> X.dot(Y) 
array([[22, 28], 
     [49, 64]]) 
>>> 
相关问题