gpt4 book ai didi

python - 类型错误 : 'KeysView' object does not support indexing

转载 作者:IT王子 更新时间:2023-10-29 01:12:42 33 4
gpt4 key购买 nike

我在尝试直接在 python 中分析来自 HDF5 文件的数据时遇到此错误。这段代码在我的 linux 机器上运行良好,但我在 Spyder3 的 mac 上尝试编译相同的脚本时遇到此错误。我尝试使用我的 mac 的原因是因为我不确定如何在 linux 终端上编写和运行脚本。

def dataProcessing(datafile):
import h5py
import numpy as np
import matplotlib.pyplot as plt
import pylab

f = h5py.File(datafile, 'r')
#print(f)
#print("Keys: %s" % f.keys())
groupKeyVal = f.keys()[4]
rawData = list(f[groupKeyVal])

rawDataMat = np.matrix(rawData)

for i in range(0,len(rawDataMat[:,0])):
fig = rawDataMat[i,:]
wav = np.squeeze(np.asarray(fig))
plt.plot(wav)
plt.show()

最佳答案

在 Python3 中,字典 keys 返回一个“view”,而不是一个可索引的列表。

In [80]: d={'a':1, 'b':2}
In [81]: d.keys()
Out[81]: dict_keys(['a', 'b'])
In [82]: d.keys()[0]
....
TypeError: 'dict_keys' object does not support indexing

类似地,对于来自 h5 组的键的字典

In [86]: f = h5py.File('data.h5')
In [87]: f.keys()
Out[87]: KeysView(<HDF5 file "data.h5" (mode r+)>)
In [88]: f.keys()[0]
....
TypeError: 'KeysView' object does not support indexing
In [89]: list(f.keys())
Out[89]: ['dset', 'dset1', 'vset']
In [90]: list(f.keys())[1]
Out[90]: 'dset1'

添加 list 有点麻烦,但它可以使键的迭代更高效。

In [92]: for k in f.keys():print(f[k])
<HDF5 dataset "dset": shape (3, 5), type "<f8">
<HDF5 dataset "dset1": shape (2, 3, 10), type "<f8">
<HDF5 dataset "vset": shape (100,), type "|O">

关于python - 类型错误 : 'KeysView' object does not support indexing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45426579/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com