Python NumPy非正统矩阵乘法

Python NumPy非正统矩阵乘法,python,numpy,matrix,Python,Numpy,Matrix,是否有一个NumPy矩阵/向量函数 [x1*y1] [x2*y2] x*y = [x3*y3] [-----] [xn*yn] 编辑: 如果没有,有人能告诉我怎么做。 编辑2:将x%y更改为x*y没有方法,只需使用* 例如,考虑 import numpy as np a = np.array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) b = np.array([[

是否有一个NumPy矩阵/向量函数

         [x1*y1]
         [x2*y2]
x*y  =   [x3*y3]
         [-----]
         [xn*yn]
编辑: 如果没有,有人能告诉我怎么做。

编辑2:将x%y更改为x*y

没有方法,只需使用*

例如,考虑

import numpy as np
a = np.array([[0, 1, 2, 3, 4],
           [5, 6, 7, 8, 9]])

b = np.array([[2, 2, 2, 2, 2],
           [2, 2, 2, 2, 2]])

print(a * b)
此代码返回

[[ 0  2  4  6  8]
 [10 12 14 16 18]]

最好使用数组而不是矩阵,矩阵总有一天会消失的。在最新版本的NumPy中,当您使用Python 3.5+时,矩阵乘法运算符@可以用于数组。拥有矩阵乘法运算符几乎是矩阵的唯一原因。

你的意思是
x*y
?那么你真的需要阅读文档了。没有混乱。矩阵乘法是一个不同的函数。您是如何创建
x
y
?使用
np.array
np.matrix
?或者就像列表一样。这使得像
*
这样的运算符的行为有所不同。你是说我可以将矩阵转换为数组,然后将它们相乘。从numpy导入的数组也可以存储矩阵。毕竟,2D矩阵就是2D数组。是的。要将它们取回,可以使用.tolist()更好地使用
importnumpyasnp
,并使用
np.array(..)
。这就少了混淆,尤其是在这种情况下,
*
以两种截然不同的方式使用。