【发布时间】: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 新手,我真的很感激能帮助我创建向量对矩阵! (就上下文而言,我的状态向量 a、b、c 不是基向量,我稍后将编写一个函数读取矩阵的元素,在进一步计算中使用 2 个 3D 状态的数组。)
【问题讨论】:
-
自我解释“用序列设置数组元素。”
标签: python arrays numpy matrix