gpt4 book ai didi

python-3.x - 无法对字典中的值进行 numpy 操作

转载 作者:行者123 更新时间:2023-12-03 09:35:22 26 4
gpt4 key购买 nike

total_minutes_by_account 是一个按帐户分类的字典。

total_min 显示以逗号分隔的值,但出现以下错误。

total_min=total_minutes_by_account.values()
import numpy as np
np.mean(total_min)

File "<ipython-input-17-7834a3d1e5e6>", line 1, in <module>
np.mean(total_min)

File "/Users/newtopython/anaconda/lib/python3.5/site-packages/numpy/core/fromnumeric.py", line 2942, in mean
out=out, **kwargs)

File "/Users/newtopython/anaconda/lib/python3.5/site-packages/numpy/core/_methods.py", line 72, in _mean
ret = ret / rcount

TypeError: unsupported operand type(s) for /: 'dict_values' and 'int'

最佳答案

在 Py3 中,adict.values() 返回一个 dict_values 对象,而不是一个列表。 numpy 函数需要 numpy 数组或列表(列表)。

In [1618]: dd = {'a':[1,2,3], 'b':[4,5,6]}
In [1619]: dd
Out[1619]: {'a': [1, 2, 3], 'b': [4, 5, 6]}
In [1620]: dd.values()
Out[1620]: dict_values([[1, 2, 3], [4, 5, 6]])
In [1621]: np.mean(dd.values())
...
TypeError: unsupported operand type(s) for /: 'dict_values' and 'int'

dict_values 转换为列表:

In [1623]: list(dd.values())
Out[1623]: [[1, 2, 3], [4, 5, 6]]
In [1624]: np.mean(list(dd.values()))
Out[1624]: 3.5

在 Py3 中,rangedict.keys() 需要相同的额外操作。

========

np.mean 首先尝试将输入转换为数组,但使用 values() 这不是我们想要的。它生成一个包含整个对象的单项对象数组。

In [1626]: np.array(dd.values())
Out[1626]: array(dict_values([[1, 2, 3], [4, 5, 6]]), dtype=object)
In [1627]: _.shape
Out[1627]: ()
In [1628]: np.array(list(dd.values()))
Out[1628]:
array([[1, 2, 3],
[4, 5, 6]])

关于python-3.x - 无法对字典中的值进行 numpy 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41369705/

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