Python 如何在变量名中存储具有两个索引的数组?
我在2内有一个数组,用于遍历索引I,j的循环。我希望将数组存储为一个变量,以便该变量携带一个索引[I,j]。我该怎么做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] 我得到一个错误,说“列表索引必须
将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
。对于数组(更好),请按照注释中的指示首先创建它