如果我理解你想要做什么,你想遍历 列 可以说这个来自 matplotlib 的 numpy 数组。
经过一番酝酿,我想出了另一个使用您提供的数据的尝试。在这次尝试中,我迭代了数组数组,同时将 numpy 数组的字段名称和数组的最内层值分别作为键和值添加到字典中:
import scipy.io as spio
import numpy as np
mydata = spio.loadmat('testdict.mat')
new = mydata.get('testdict')
recordarr = np.rec.array(new)
myDictionary = {}
myList = []
for field in recordarr.dtype.names: #iterates through field names of numpy array
for array in recordarr[field]: #iterates through the array of each numpy array
for value in array:
myList.append(np.squeeze(value.flatten()[0]))
#print(np.squeeze(value.flatten()[0]))
myDictionary[field] = myList
myList = []
#break
这是以下代码从 myDictionary 变量中的名为 year 的键中请求值的结果:
In [153]: myDictionary['year']
Out[153]: [1852, 1852, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1854]
如果给定代码中的注释行未注释,则可以将上述结果视为输出。
link 帮助我了解了如何格式化 matplotlib numpy 数组以访问其字段值。
这个post 还帮助我了解了如何从新格式化的 matplotlib numpy 数组中获取值。
上一次尝试
这是一个遍历所需数组的尝试,虽然不是完整的答案,但仍然是一个难题。
如果您能够在这些数组中访问所需的数组,也许您可以使用类似于以下内容的方式遍历它们:
免责声明:不确定键的哪些值被假定为整数。
arrays = [['Hello'], ['World'], ['Foobar'], ['Alice'], ['Bob'], ['Chuck']]
d = {}
n = 0
for array in arrays:
for element in array:
d[element] = n
n += 1
print(d)
输出
{'Hello': 0, 'World': 1, 'Foobar': 2, 'Anne': 3, 'Bob': 4, 'Chuck': 5}