我想采用数组 C2,大小为 N,1,并创建数组 B,大小为 N-1,1。
B[0] = C2[1]
B[1] = C2[2]
等等。我的代码是:
import numpy as np
import pandas as pd
fields = "B:D"
data = pd.read_excel(r'C:\Users\file.xlsx', "Sheet2", usecols=fields)
N = 2
# Covariance calculation
C1 = data.cov() C2 = data.var()
B = np.zeros(shape=(N,1))
for i in B:
B[i,1] = C2[i+1,1]
但错误是:
ValueError: Can only tuple-index with a MultiIndex
我知道这是一个简单的错误,但找不到哪里:S(新的 python 用户)
最佳答案
首先,您确定需要使用 numpy 数组吗?这似乎是 python 列表的工作。
接下来,使用 for i in B:
是什么意思?我是什么类型?
在这种情况下,迭代 B 会将 i
设置为 [0.]
,现在您可以看到下一行将在替换
B[[0.],i] = C2[[0.]+1,1]
此外,对 pd.var()
的调用返回一维序列,因此第二个索引没有执行任何操作。
我认为你想像这样迭代 N
for i in range(N):
B[i,1] = C2[i+1]
关于Python “for” 问题 - 只能使用 MultiIndex 进行元组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290016/