gpt4 book ai didi

python - Numpy 一维数组 : Row or Column Matrix by Default?

转载 作者:行者123 更新时间:2023-12-02 03:28:43 24 4
gpt4 key购买 nike

在下面的代码中,我创建了 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)

输出:

   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]]

现在,我有一些问题:

  1. a = np.array([1,2,3,4,5]) ,这真的创建了一个行矩阵吗?

  2. print("a.T: ", a.T)这会隐式地将行矩阵转换为列矩阵吗?还是真的没变?

  3. b = np.array([[1,2,3,4,5]])这真的会创建一个行矩阵吗?

  4. print("b.T: ", b.T)这会将行矩阵转换为列矩阵吗?我的意思是,我说得对吗?

  5. 或者,如果我创建一个只有一个括号的 numpy 数组,根本没有问题或行或列矩阵?

还有一件事,当执行点操作时,我得到以下信息:

代码:

print(b.dot(a))
print(b.dot(a.T))

输出:

[55]
[55]

但是,就我而言,dot() 函数执行矩阵乘法的任务。如果是这样的话,根据矩阵乘法的规则,第一个矩阵的列数必须等于第二个矩阵的行数,所以在其中一种情况下不应该有错误吗?

最佳答案

  1. 不,这不是 Numpy 中的行矩阵,因为它只有一维 (5,)

  2. 不是,因为a不是行矩阵(见1)

  3. 是的,假设“行矩阵”是指“具有一行和 N 列的二维数组”

  4. 是的,假设“列矩阵”是指“具有 N 行和一列的二维数组”

  5. 使用一组括号,您根本不会创建“矩阵”(读作:2D 数组),只是一个 1D 数组

  6. (?) The documentation for np.dot明确表示只是一些特殊情况下的矩阵乘法。

关于python - Numpy 一维数组 : Row or Column Matrix by Default?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52462586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com