为什么numpy.random.choice和numpy.full()不会退出

时间:2016-02-12 23:42:25

标签: python numpy scipy pycharm

我是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'

2 个答案:

答案 0 :(得分:4)

根据numpy发行说明,在numpy 1.8.0之前不会添加np.full - 您似乎正在使用1.6.2。如果您在该文档中进行搜索,numpy.random.choice看起来就像是1.7.0中的一个高亮显示,那么您又有点过时了。 。

由于目前的情况似乎至少为1.10.1 - 也许是时候进行更新了?

答案 1 :(得分: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.]])