【问题标题】:Why numpy.random.choice and numpy.full() does not exit为什么 numpy.random.choice 和 numpy.full() 不退出
【发布时间】:2016-05-24 06:45:13
【问题描述】:

我是 python 编程的新手。我在 Mavericks 上运行 Python 2.7,并且安装了 numpy、scipy 和 matplotlib。 我有: scipy.version=0.11.0 numpy.version=1.6.2 我尝试在 PyCharm 上运行此代码,但出现这些错误。

import numpy  ;
import scipy;
import matplotlib;
import sys,os
from numpy import *;
from scipy import *;
import random;

numpy.random.choice(20,10) #AttributeError: 'module' object has no attribute 'choice'

numpy.full((3,3),7)   #AttributeError: 'module' object has no attribute 'full'

【问题讨论】:

  • 您将numpy 导入为np,但您使用numpy.fullnumpy.random.choice。您可以使用np.fullrandom.choice
  • 鉴于您的导入 np.fullfull(...) 应该可以工作。但删除 * 导入。
  • 从您显示的代码中可以看到这些非常奇怪的错误消息。当您尝试使用 numpy 时,我预计会出现 NameError。您似乎没有显示所有相关代码。
  • @zondo 你的建议不合逻辑,它不起作用
  • @hpaulj,为什么我没有删除 * ?你的建议不起作用。

标签: python numpy scipy pycharm


【解决方案1】:

根据 numpy 发行说明,np.full 直到 numpy 1.8.0 才被添加——您似乎使用的是 1.6.2。如果您在该文档中搜索,numpy.random.choice 看起来就像是 1.7.0 中的一个亮点,所以再一次,您有点过时了。 . .

当前似乎至少是 1.10.1 —— 也许是时候更新了?

【讨论】:

  • 如何更新。我试过 sudo pip install --upgrade numpy 但我得到一个错误目录'/Users/xxx/Library/Caches/pip/http'或其父目录不属于当前用户并且缓存已被禁用。请检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。目录 '/Users/xxxx/Library/Caches/pip' 或其父目录不归当前用户所有,并且缓存轮已被禁用。检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。
  • 您是否按照建议尝试了-H 标志?除此之外,它看起来像是您机器上的权限问题。在那种系统管理员级别的东西上,我通常不是超级棒,所以我可能帮不上什么忙:-/
【解决方案2】:

如果您的 numpy 版本中缺少这些功能,则有很好的替代方案:

In [408]: np.random.choice(20,10)
Out[408]: array([17,  5,  2, 16,  9,  1,  6, 18,  2,  8])
In [409]: np.random.randint(0,20,size=10)
Out[409]: array([ 8,  8,  1, 19, 18, 10, 15,  9, 13, 17])

In [413]: np.full((3,3),7)
Out[413]: 
array([[ 7.,  7.,  7.],
       [ 7.,  7.,  7.],
       [ 7.,  7.,  7.]])
In [414]: np.ones((3,3))*7
Out[414]: 
array([[ 7.,  7.,  7.],
       [ 7.,  7.,  7.],
       [ 7.,  7.,  7.]])
In [415]: x=np.ones((3,3));x[:]=7;x
Out[415]: 
array([[ 7.,  7.,  7.],
       [ 7.,  7.,  7.],
       [ 7.,  7.,  7.]])

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 2020-11-20
    • 2018-07-20
    • 2020-03-18
    • 2014-12-16
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多