python中module 'pandas.util.testing' has no attribute 'choice'

发布于 2022-09-06 03:32:04 字数 873 浏览 14 评论 0

问题背景
书上的一个例子

import pandas.util.testing as tm

colors = tm.choice(['red','green'],size=10)

运行结果:
图片描述

但我运行就报错:

module 'pandas.util.testing' has no attribute 'choice'

我查了一下pandas.util.testing包里面好像的确没有choice()函数。。我也不知道当初书上那个是怎么做出来的。我看官方好像提供了一个函数randu_array(),但我用

colors = tm.randu_array(['red','green'],size=10)

报错:

cannot perform reduce with flexible type

报了一长串的错,只是最后一句,


问题更新
底下的二楼大佬回复我说可以这样

import numpy as np
import pandas.util.testing as tm
tm.np.random.choice()

我试了一下可以!而且我是知道numpy.random里面有个choice()函数的,
不过为什么tm可以引用到np这个名称?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦罢 2022-09-13 03:32:04
>>> tm.np.random.choice(['red','green'], 10)
array(['red', 'red', 'red', 'green', 'green', 'red', 'green', 'green',
       'green', 'green'], 
      dtype='<U5')

为什么tm可以引用到np这个名称?

testing 只是把一些常用的功能集中到一块而已~
它原来的choice()就是 numpy.random里面的choice()
你可以去看testing的源文件,它导入numpy ,所以可以引用到np这个名称

晨曦慕雪 2022-09-13 03:32:04

什么破书……那个 choice 没定义在那里,所以新版本不小心就没了吧……

>>> from numpy.random import choice
>>> choice(['red', 'green'])
'red'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文