小编Shi*_*man的帖子

Numpy 一维数组:默认是行矩阵还是列矩阵?

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

现在,我有一些问题:

  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))
Run Code Online (Sandbox Code Playgroud)

输出:

[55] …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix matrix-multiplication python-3.x

3
推荐指数
1
解决办法
4006
查看次数

值错误:解压缩的值太多(预期3)

我试图实现值迭代算法.我有一个网格

grid = [[0, 0, 0, +1],
    [0, "W", 0, -1],
    [0, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

动作列表

actlist = {UP:1, DOWN:2, LEFT:3, RIGHT:4}
Run Code Online (Sandbox Code Playgroud)

还有奖励功能

reward = [[0, 0, 0, 0],
      [0, 0, 0, 0],
      [0, 0, 0,  0]] 
Run Code Online (Sandbox Code Playgroud)

我写了一个函数T,它返回3个元组的元组.

def T(i,j,actions):
if(i == 0 and j == 0):
    if(actions == UP):
        return (i,i,0.8),(i,i,0.1),(i,j+1,0.1)
    elif(actions == DOWN):
        return (i+1,j,0.8),(i,j,0.1),(i,j+1,0.1)
    elif(actions == LEFT):
        return (i,j,0.8),(i,j,0.1),(i+1,j,0.1)
    elif(actions == RIGHT):
        return (i,j+1,0.8),(i,i,0.1),(i+1,j,0.1)
elif (i == 0 and j == 1):
    if(actions == UP):
        return (i,i,0.8),(i,j-1,0.1),(i,j+1,0.1) …
Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence tuples python-3.x valueerror

0
推荐指数
1
解决办法
488
查看次数