2024-05-23 13:58:14 发布
网友
我对python比较陌生,对numpy也很陌生。 我意识到使用numpy我可以在所有配置中倍增阵列: 行*列,列*行,列*列,行*行。在
这是什么意思? 我以为这是矩阵乘法,唯一合法的就是行*列, 或列*行,结果为零维或二维。 我对这次行动感到困惑。在
多维数组和数组的基本运算都是二进制的。a * b产生{}。如果数组的形状不同,numpy将尝试将较小的数组broadcast转换成仍然有意义的内容,然后执行elementwise操作。在
a * b
Numpy矩阵是一个独立的数据结构。它们总是二维的,遵守你在线性代数中学到的所有规则。在
I thought that this is matrix multiplication
除非使用matrix对象或dot方法/函数,否则它不是。这是元素乘法,对于不匹配的维度,有一些称为broadcasting的额外处理。如果你想要矩阵乘法,用
matrix
dot
numpy.dot(A, B)
您也可以使用matrix对象来代替ndarrays,但是它们导致的不一致性可能会让人讨厌。你需要知道如果给定一个矩阵,什么操作会返回一个矩阵,什么操作总是返回一个数组,A[x][y]将不起作用,还有更多的小问题会把你搞砸。在
ndarray
A[x][y]
多维数组和数组的基本运算都是二进制的。}。如果数组的形状不同,numpy将尝试将较小的数组broadcast转换成仍然有意义的内容,然后执行elementwise操作。在
a * b
产生{Numpy矩阵是一个独立的数据结构。它们总是二维的,遵守你在线性代数中学到的所有规则。在
除非使用
matrix
对象或dot
方法/函数,否则它不是。这是元素乘法,对于不匹配的维度,有一些称为broadcasting的额外处理。如果你想要矩阵乘法,用您也可以使用
matrix
对象来代替ndarray
s,但是它们导致的不一致性可能会让人讨厌。你需要知道如果给定一个矩阵,什么操作会返回一个矩阵,什么操作总是返回一个数组,A[x][y]
将不起作用,还有更多的小问题会把你搞砸。在相关问题 更多 >
编程相关推荐