【问题标题】:Making a Matrix with Entries that are Arrays in Python?用 Python 中的数组创建一个矩阵?
【发布时间】:2023-04-01 03:26:01
【问题描述】:

问题来了:

我有 3 个状态(3D 向量),我想配对(例如 (a,a), (a >,b), (a,c), (b,a ), (b,b), ...) 转换为 3X3 矩阵的元素。

以更抽象的方式,我有一组包含 3 个条目的 3 个数组,我想生成一个 3x3 数组,其中条目本身是 2 个原始数组的数组。 (很多嵌套)。

对于 3 个笛卡尔基向量,如下所示: a = (1,0,0), b = (0,1,0), c = (0,0,1)

矩阵将是:

M = | {(1,0,0),(1,0,0)} {(1,0,0),(0,1,0)} {(1,0,0),(0,0,1)} |
    | {(0,1,0),(1,0,0)} {(0,1,0),(0,1,0)} {(0,1,0),(0,0,1)} |
    | {(0,0,1),(1,0,0)} {(0,0,1),(0,1,0)} {(0,0,1),(0,0,1)} |

# I appreciate I have formatted the matrix in code rather than LaTeX
# but I can't find the functionality to do this on StackOverflow

所以矩阵的元素是 2 个条目的数组,这些数组的条目是我的 3D 向量(具有 3 个条目的数组)。

我用来实现这个的代码是:

import numpy as np

a= np.array([0,0,0])
b= np.array([0,0,1])
c= np.array([0,2,0])

states = np.array([a,b,c])
def cycler(states):
    matrix = np.zeros((3,3))
    
    for x in range(0,3):
        for y in range(0,3):
            matrix[x,y]= np.array([states[x],states[y] ])

    return matrix

cycler(states)

但是,当我运行此代码时,我收到一条错误消息:

matrix[x,y]= np.array([states[x],states[y] ])

带有错误信息:

ValueError: 使用序列设置数组元素。

作为一个 python 新手,我真的很感激能帮助我创建向量对矩阵! (就上下文而言,我的状态向量 abc 不是基向量,我稍后将编写一个函数读取矩阵的元素,在进一步计算中使用 2 个 3D 状态的数组。)

【问题讨论】:

  • 自我解释“用序列设置数组元素。”

标签: python arrays numpy matrix


【解决方案1】:

设置matrix = np.zeros((3,3),dtype=object) 可以解决您的问题,但我建议您宁愿使用尺寸为 3x3x2x3 的 4d 数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2017-03-13
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多