Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么数组乘法是可交换的?_Python_Numpy - Fatal编程技术网

Python 为什么数组乘法是可交换的?

Python 为什么数组乘法是可交换的?,python,numpy,Python,Numpy,我对python相当陌生,对numpy来说也非常陌生。 我意识到,使用numpy,我可以在所有配置中倍增阵列: 行*列,列*行,列*列,行*行 这是什么意思? 我认为这是矩阵乘法,唯一合法的是行*列, 或列*行,结果为零维或二维。 我对这个手术感到困惑 我以为这是矩阵乘法 除非您使用的是矩阵对象或点方法/函数,否则它不是。这是元素相乘,还有一些额外的处理,比如不匹配的维度。如果需要矩阵乘法,请使用 numpy.dot(A, B) 您也可以使用matrix对象而不是ndarrays,但是它们导致

我对python相当陌生,对numpy来说也非常陌生。 我意识到,使用numpy,我可以在所有配置中倍增阵列: 行*列,列*行,列*列,行*行

这是什么意思? 我认为这是矩阵乘法,唯一合法的是行*列, 或列*行,结果为零维或二维。 我对这个手术感到困惑

我以为这是矩阵乘法

除非您使用的是
矩阵
对象或
方法/函数,否则它不是。这是元素相乘,还有一些额外的处理,比如不匹配的维度。如果需要矩阵乘法,请使用

numpy.dot(A, B)

您也可以使用
matrix
对象而不是
ndarray
s,但是它们导致的不一致性可能会让您感到厌烦。如果给定一个矩阵,您需要知道哪些操作将返回一个矩阵,哪些操作将始终返回一个数组,
a[x][y]
将不起作用,还有更多的小问题将使您陷入困境。

Numpy数组是N维网格数据,它们的大多数二进制操作都执行元素级标量操作
a*b
产生
a[i,j,k]*b[i,j,k]
。如果数组的形状不同,numpy将尝试将较小的数组转换为仍然有意义的内容,然后执行elementwise操作


Numpy矩阵是一个独立的数据结构。它们始终是二维的,并且遵守线性代数中的所有规则。

numpy操作通常是元素操作。还请阅读以了解不同维度数组的情况。哦,如果您需要矩阵乘法,请尝试类似于
np.matrix(a)*np.matrix(b)
,或者。