Python 不等概率生成数

Python 不等概率生成数,python,python-2.7,random,Python,Python 2.7,Random,事情是这样的 我想生成两个概率不同的值,1和-1。 当我运行此脚本时,我收到一条消息,其中选择了一个意外的关键字参数“p” 有人能告诉我为什么会发生这种情况,以及如何修复它吗? 谢谢 您将收到消息TypeError:choice得到一个意外的关键字参数“p”,因为Python标准库函数没有关键字参数p 也许你的意思是: 您可以通过将import random更改为r来修复代码,将numpy.random更改为r,但是使用非标准的单字母名称来引用重要模块只会让事情变得更加混乱。传统的缩写是 imp

事情是这样的

我想生成两个概率不同的值,1和-1。 当我运行此脚本时,我收到一条消息,其中选择了一个意外的关键字参数“p”

有人能告诉我为什么会发生这种情况,以及如何修复它吗? 谢谢


您将收到消息TypeError:choice得到一个意外的关键字参数“p”,因为Python标准库函数没有关键字参数p

也许你的意思是:

您可以通过将import random更改为r来修复代码,将numpy.random更改为r,但是使用非标准的单字母名称来引用重要模块只会让事情变得更加混乱。传统的缩写是

import numpy as np
在此之后,np.random.choice起作用

现在不可否认,因为scipy导入了numpy的一部分,所以您可以通过它访问numpy.random,但是您的行

from scipy import *   # <-- don't do this! 

应该避免。它将标准Python函数与行为不同的numpy版本进行了对比,在某些情况下给出了相反的答案

您将收到消息TypeError:choice得到一个意外的关键字参数“p”,因为Python标准库函数没有关键字参数p

也许你的意思是:

您可以通过将import random更改为r来修复代码,将numpy.random更改为r,但是使用非标准的单字母名称来引用重要模块只会让事情变得更加混乱。传统的缩写是

import numpy as np
在此之后,np.random.choice起作用

现在不可否认,因为scipy导入了numpy的一部分,所以您可以通过它访问numpy.random,但是您的行

from scipy import *   # <-- don't do this! 

应该避免。它将标准Python函数与行为不同的numpy版本进行了对比,在某些情况下给出了相反的答案

谢谢你的回答。我尝试将import numpy作为np和numpy.random.choice1,-1,p=[0.2,0.8]运行,在终端中,我得到消息模块对象没有属性“选择为什么会发生这种情况?@epx您的numpy版本是什么?@skyline75489谢谢。我的numpy版本以前是1.6.1。我刚刚升级到1.9.1,这就解决了这个问题。谢谢你的回答。我尝试将import numpy作为np和numpy.random.choice1,-1,p=[0.2,0.8]运行,在终端中,我得到消息模块对象没有属性“选择为什么会发生这种情况?@epx您的numpy版本是什么?@skyline75489谢谢。我的numpy版本以前是1.6.1。我只是将它升级到1.9.1,这就解决了问题。