Python 如何在变量名中存储具有两个索引的数组?

Python 如何在变量名中存储具有两个索引的数组?,python,numpy,Python,Numpy,我在2内有一个数组,用于遍历索引I,j的循环。我希望将数组存储为一个变量,以便该变量携带一个索引[I,j]。我该怎么做 将numpy导入为np n=5 cond=[[],[]表示范围(n)内的uu 对于范围(n)中的i: 对于范围(n)内的j: H=np.数组([[1,i],[3,j]] eig_值,eig_向量=np.linalg.eig(H) eig_向量[:,0][np.newaxis] cond[i,j]=eig_向量[:,0][np.newaxis] 我得到一个错误,说“列表索引必须

我在2内有一个数组,用于遍历索引I,j的循环。我希望将数组存储为一个变量,以便该变量携带一个索引[I,j]。我该怎么做

将numpy导入为np
n=5
cond=[[],[]表示范围(n)内的uu
对于范围(n)中的i:
对于范围(n)内的j:
H=np.数组([[1,i],[3,j]]
eig_值,eig_向量=np.linalg.eig(H)
eig_向量[:,0][np.newaxis]
cond[i,j]=eig_向量[:,0][np.newaxis]

我得到一个错误,说“列表索引必须是整数或切片,而不是元组”

是的,您可以将
cond
声明为
numpy
数组,例如,声明为
零的数组。
如果我理解正确,您希望为每个
I,j
存储
eig_向量[:,0]
,这就是下面的代码所做的

import numpy as np
n = 5
cond = np.zeros((n, n, 2)) # declare a numpy array of zeros of shape (n, n, 2)
for i in range(n):
    for j in range(n):
        H=np.array([[1,i],[3,j]])
        eig_values, eig_vectors = np.linalg.eig(H)
        cond[i,j] = eig_vectors[:,0] 

是的,您可以将
cond
声明为
numpy
数组,例如,声明为
零的数组。
如果我理解正确,您希望为每个
I,j
存储
eig_向量[:,0]
,这就是下面的代码所做的

import numpy as np
n = 5
cond = np.zeros((n, n, 2)) # declare a numpy array of zeros of shape (n, n, 2)
for i in range(n):
    for j in range(n):
        H=np.array([[1,i],[3,j]])
        eig_values, eig_vectors = np.linalg.eig(H)
        cond[i,j] = eig_vectors[:,0] 

cond
未定义。它的形状是什么?错误很明显,您试图设置一个值,
cond[i,j]
,带有序列。(
eig_vectors[:,0]
是一个向量)您需要
cond[i,j]
还是将
cond[i][j]
足够?您是否打算将
cond
初始化为(n,n,2)数组?索引符号
[i,j]
仅适用于numpy数组,对于使用
[i][j]
访问的列表。此外,不能将
(i,j)
值分配给以前未定义为
n x n
结构的列表或数组。对于列表,可以使用
append
。对于数组(更好),首先创建它,如注释中所示
cond
未定义。它的形状是什么?错误很明显,您试图设置一个值,
cond[i,j]
,带有序列。(
eig_vectors[:,0]
是一个向量)您需要
cond[i,j]
还是将
cond[i][j]
足够?您是否打算将
cond
初始化为(n,n,2)数组?索引符号
[i,j]
仅适用于numpy数组,对于使用
[i][j]
访问的列表。此外,不能将
(i,j)
值分配给以前未定义为
n x n
结构的列表或数组。对于列表,可以使用
append
。对于数组(更好),请按照注释中的指示首先创建它