小编sop*_*ros的帖子

有没有办法在python的lambda中执行"if"

python 2.6中,我想做:

f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception
Run Code Online (Sandbox Code Playgroud)

这显然不是语法.是否有可能执行ifin lambda和if if how to do it?

谢谢

python lambda python-2.6

328
推荐指数
6
解决办法
44万
查看次数

如何在Python中覆盖[]运算符?

[]在Python中覆盖类的运算符(下标表示法)的方法名称是什么?

python operator-overloading

194
推荐指数
3
解决办法
9万
查看次数

使用dict文字和dict构造函数之间有区别吗?

使用PyCharm,我注意到它提供转换dict文字:

d = {
    'one': '1',
    'two': '2',
}
Run Code Online (Sandbox Code Playgroud)

进入一个dict构造函数:

d = dict(one='1', two='2')
Run Code Online (Sandbox Code Playgroud)

这些不同的方法在某些重要方面有所不同吗?

(在写这个问题时,我注意到使用dict()它似乎不可能指定一个数字键.. d = {1: 'one', 2: 'two'}是可能的,但显然,dict(1='one' ...)不是.还有其他吗?)

python dictionary pycharm

192
推荐指数
6
解决办法
13万
查看次数

Pandas系列的直方图值

我在Python Pandas系列中有一些值(类型:pandas.core.series.Series)

In [1]: series = pd.Series([0.0,950.0,-70.0,812.0,0.0,-90.0,0.0,0.0,-90.0,0.0,-64.0,208.0,0.0,-90.0,0.0,-80.0,0.0,0.0,-80.0,-48.0,840.0,-100.0,190.0,130.0,-100.0,-100.0,0.0,-50.0,0.0,-100.0,-100.0,0.0,-90.0,0.0,-90.0,-90.0,63.0,-90.0,0.0,0.0,-90.0,-80.0,0.0,])

In [2]: series.min()
Out[2]: -100.0

In [3]: series.max()
Out[3]: 950.0
Run Code Online (Sandbox Code Playgroud)

我想获得直方图的值(不需要绘制直方图)...我只需要获得每个间隔的频率.

假设我的间隔是从[-200; -150]至[950; 1000]

所以下限是

lwb = range(-200,1000,50)
Run Code Online (Sandbox Code Playgroud)

和上限是

upb = range(-150,1050,50)
Run Code Online (Sandbox Code Playgroud)

我现在不知道如何获得频率(每个区间内的值的数量)......我确信定义lwb和upb是不必要的...但我不知道我应该使用什么函数执行此操作!(在Pandas doc中潜水后,我认为pandas.core.series.Series功能可以帮助我,因为它是一个离散化问题......但我不明白如何使用它)

能够做到这一点后,我将看看显示直方图的方式(但这是另一个问题)

python numpy matplotlib pandas

61
推荐指数
2
解决办法
5万
查看次数

为什么接下来会提出'StopIteration',但'for'会做出正常的回报?

在这段代码中,为什么使用'for'会导致没有'StopIteration'或'for'循环捕获所有异常然后以静默方式退出?在这种情况下,为什么我们有无关的"回归"?或者是 for由:StopIteration

#!/usr/bin/python3.1
def countdown(n):
    print("counting down")
    while n >= 9:
        yield n
        n -= 1
    return

for x in countdown(10):
    print(x)

c = countdown(10)
next(c)
next(c)
next(c)
Run Code Online (Sandbox Code Playgroud)

假设for是由以下方式触发:return.GeneratorExit何时生成?

def countdown(n):
    print("Counting down from %d" % n)
    try:
        while n > 0:
            yield n
            n = n - 1
    except GeneratorExit:
        print("Only made it to %d" % n)
Run Code Online (Sandbox Code Playgroud)

如果我手动执行:

c = countdown(10)
c.close() #generates GeneratorExit??
Run Code Online (Sandbox Code Playgroud)

在哪种情况下,为什么我看不到追溯?

python iterator generator stopiteration

59
推荐指数
1
解决办法
8万
查看次数

带参数的Pandas read_sql

是否有任何关于如何在Pandas中使用SQL查询传递参数的示例?

特别是我使用SQLAlchemy引擎连接到PostgreSQL数据库.到目前为止,我发现以下工作:

df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %s AND %s'),
                   db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
                   index_col=['Timestamp'])
Run Code Online (Sandbox Code Playgroud)

Pandas文档说params也可以作为dict传递,但是我似乎无法通过尝试例如:

df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN :dstart AND :dfinish'),
                   db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
                   index_col=['Timestamp'])
Run Code Online (Sandbox Code Playgroud)

从Pandas运行这些类型的查询的推荐方法是什么?

python sql psycopg2 pandas

50
推荐指数
1
解决办法
9万
查看次数

`os.symlink` vs`ln -s`

我需要为dir2中的dir1(文件或目录)的每个项创建一个符号链接.dir2已经存在且不是符号链接.在Bash中,我可以通过以下方式轻松实现:

ln -s /home/guest/dir1/* /home/guest/dir2/

但是在python中使用os.symlink我收到一个错误:

>>> os.symlink('/home/guest/dir1/*', '/home/guest/dir2/')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 17] File exist
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用os.symlink并运行subprocess命令.我不想要那个解决方案.

我也知道使用lnos.walk可能的解决方法,但我想知道是否可以使用glob.glob.

python linux bash symlink

38
推荐指数
3
解决办法
5万
查看次数

ModuleNotFoundError:没有名为“numpy.testing.nosetester”的模块

我正在使用决策树并引发了此错误。当我使用反向传播时,出现了同样的情况。我该如何解决?

import pandas as pd
import numpy as np
a = np.test()
f = open('E:/lgdata.csv')
data = pd.read_csv(f,index_col = 'id')

x = data.iloc[:,10:12].as_matrix().astype(int)
y = data.iloc[:,9].as_matrix().astype(int)

from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy')
dtc.fit(x,y)
x=pd.DataFrame(x) 

from sklearn.tree import export_graphviz
with open('tree.dot','w') as f1:
    f1 = export_graphviz(dtc, feature_names = x.columns, out_file = f1)
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用):
??File "<ipython-input-40-4359c06ae1f0>", line 1, in <module>
????runfile('C:/ProgramData/Anaconda3/lib/site-packages/ scipy/_lib/_numpy_compat.py', wdir='C:/ProgramData/Anaconda3/lib/site-packages/scipy/_lib')
??File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils \site\sitecustomize.py", line 710, in runfile
????execfile(filename, namespace)
??File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py" ,第 101 行,在 execfile
????exec(compile(f.read(), …

python numpy machine-learning nose importerror

37
推荐指数
4
解决办法
6万
查看次数

使用pyMCMC/pyMC为数据/观察拟合非线性函数

我试图用高斯(和更复杂)函数拟合一些数据.我在下面创建了一个小例子.

我的第一个问题是,我做得对吗?

我的第二个问题是,如何在x方向上添加错误,即在观察/数据的x位置?

如何在pyMC中进行这种回归很难找到很好的指南.也许是因为它更容易使用一些最小二乘或类似的方法,但我最终有很多参数,需要看看我们如何约束它们并比较不同的模型,pyMC似乎是一个很好的选择.

import pymc
import numpy as np
import matplotlib.pyplot as plt; plt.ion()

x = np.arange(5,400,10)*1e3

# Parameters for gaussian
amp_true = 0.2
size_true = 1.8
ps_true = 0.1

# Gaussian function
gauss = lambda x,amp,size,ps: amp*np.exp(-1*(np.pi**2/(3600.*180.)*size*x)**2/(4.*np.log(2.)))+ps
f_true = gauss(x=x,amp=amp_true, size=size_true, ps=ps_true )

# add noise to the data points
noise = np.random.normal(size=len(x)) * .02 
f = f_true + noise 
f_error = np.ones_like(f_true)*0.05*f.max()

# define the model/function to be fitted.
def model(x, f): 
    amp = pymc.Uniform('amp', …
Run Code Online (Sandbox Code Playgroud)

python regression pymc probabilistic-programming

27
推荐指数
2
解决办法
7013
查看次数

Numpy.dot TypeError:根据规则'safe',无法将数组数据从dtype('float64')转换为dtype('S32')

使用时为什么会出现此错误np.dot(a,b.T):

TypeError: Cannot cast array data from dtype('float64') 
               to dtype('S32') according to the rule 'safe'
Run Code Online (Sandbox Code Playgroud)

a和b的类型为'numpy.ndarray'.我的numpy版本是1.11.0.

python arrays numpy

25
推荐指数
2
解决办法
6万
查看次数