我是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'
答案 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.]])