Shi*_*man 3 python numpy matrix matrix-multiplication python-3.x
在下面的代码中,我创建了 2 个 numpy 数组。一种是一维的,另一种是二维的。
当我转置一维数组时,它保持不变。从行矩阵到列矩阵它不会改变。 当我转置二维数组时,它从行矩阵更改为列矩阵。
代码:
a = np.array([1,2,3,4,5])
print("a: ", a)
print("a.T: ", a.T)
b = np.array([[1,2,3,4,5]])
print("b: ", b)
print("b.T: ", b.T)
Run Code Online (Sandbox Code Playgroud)
输出:
a: [1 2 3 4 5]
a.T: [1 2 3 4 5]
b: [[1 2 3 4 5]]
b.T: [[1]
[2]
[3]
[4]
[5]]
Run Code Online (Sandbox Code Playgroud)
现在,我有一些问题:
a = np.array([1,2,3,4,5]),这真的创建了一个行矩阵吗?
print("a.T: ", a.T)这是否隐式地将行矩阵转换为列矩阵?还是真的保持不变?
b = np.array([[1,2,3,4,5]])这真的创建了一个行矩阵吗?
print("b.T: ", b.T)这会将行矩阵转换为列矩阵吗?我的意思是,我说得对吗?
或者,如果我创建一个只有一个括号的 numpy 数组,则根本没有问题或行或列矩阵?
另一件事,当执行点操作时,我得到以下结果:
代码:
print(b.dot(a))
print(b.dot(a.T))
Run Code Online (Sandbox Code Playgroud)
输出:
[55]
[55]
Run Code Online (Sandbox Code Playgroud)
但是,就我而言, dot() 函数执行矩阵乘法的任务。如果是这样的话,那么根据矩阵乘法的规则,第一个矩阵的列数必须等于第二个矩阵的行数,在这种情况下不是应该有错误吗?
不,这不是 Numpy 中的行矩阵,因为它只有一维 (5,)
不,因为a不是行矩阵(参见 1)
是的,假设“行矩阵”的意思是“一行 N 列的二维数组”
是的,假设“列矩阵”的意思是“具有 N 行和一列的二维数组”
使用一组括号,您根本不会创建“矩阵”(读取:二维数组),而只是创建一维数组
(?) np.dot 的文档清楚地表明它只是某些特殊情况下的矩阵乘法。
| 归档时间: |
|
| 查看次数: |
4006 次 |
| 最近记录: |