在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中覆盖类的运算符(下标表示法)的方法名称是什么?
使用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 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功能可以帮助我,因为它是一个离散化问题......但我不明白如何使用它)
能够做到这一点后,我将看看显示直方图的方式(但这是另一个问题)
在这段代码中,为什么使用'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)
在哪种情况下,为什么我看不到追溯?
是否有任何关于如何在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运行这些类型的查询的推荐方法是什么?
我需要为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命令.我不想要那个解决方案.
我也知道使用ln或os.walk可能的解决方法,但我想知道是否可以使用glob.glob.
我正在使用决策树并引发了此错误。当我使用反向传播时,出现了同样的情况。我该如何解决?
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(), …
我试图用高斯(和更复杂)函数拟合一些数据.我在下面创建了一个小例子.
我的第一个问题是,我做得对吗?
我的第二个问题是,如何在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) 使用时为什么会出现此错误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 ×10
numpy ×3
pandas ×2
arrays ×1
bash ×1
dictionary ×1
generator ×1
importerror ×1
iterator ×1
lambda ×1
linux ×1
matplotlib ×1
nose ×1
psycopg2 ×1
pycharm ×1
pymc ×1
python-2.6 ×1
regression ×1
sql ×1
symlink ×1