我有这样的模型:
class Test(db.Model, UnicodeMixin):
__tablename__ = 'test'
id = db.Column(db.Integer, primary_key=True)
subject = db.Column(db.String(512), nullable=False)
additional = None
def __unicode__(self):
return u'<Test {0}>'.format(self.id)
Run Code Online (Sandbox Code Playgroud)
有些代码很难SELECT从db中使用其他动态数据来生成RAW SQL 。
例如,它像:
db.session.query(Test).from_statement("SELECT test.id AS test_id, test.subject AS test_subject, 99 AS additional FROM test").all()
Run Code Online (Sandbox Code Playgroud)
它生成python对象的列表Test,但是如何填充additional这些python对象的属性?
我不想在数据库中存储NULL列additional。
我想用SQL创建动态附加数据并将其添加到python对象。
请帮忙。
谢谢。
我有一个由 管理的字典SyncManager,我正在使用.get()和.update()函数来检索和设置字典键和值。但是,该del dict[key]方法并未实施。有没有办法从托管字典键中删除键?
简单的例子:
mgr = multiprocessing.Manager()
shared_dict = mgr.dict()
shared_dict.update( {'key1' : 'value1'} )
print shared_dict.get('key1')
#Now let's delete key1
del shared_dict['key1'] #Nope!
shared_dict.__delitem__('key1') #Also not allowed
Run Code Online (Sandbox Code Playgroud) 请帮助getpath()在getpath()xpath 中返回完整的标签名称或找到解决方法
我正在尝试为lxml.etree._ElementTree. ElementTree通过解析来自某些生产 WebService 的 600Kb 响应生成。
print elem.getroottree().getpath(elem)
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
'/S:Envelope/S:Body/ns5:getPhysicalResponse/*[18]/*[12]/*[6]/*[2]'
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法发布原始 xml - 它包含专有的客户信息。此外,我尝试使用自动生成的具有 100 个嵌套级别的简单元素树来重现此结果,每个级别有 100 个子级,但没有运气 -getpath()返回带有完整标签名称的 xpath。
更新
查看lxml 源代码- 它指向库中的tree.h xmlGetNodePath方法libxml2。所以这实际上是libxml2行为。
更新 做更多的测试,我发现每次标签具有非默认命名空间时都会发生这种情况。
我一直在讨论是否应该有一个专门存放MetaData在熊猫中的地方DataFrame,我个人觉得这个功能非常有用.
在未来的版本中实现之前,我一直在寻找2个解决方法,但它们中没有一个看起来真的令人满意.
由于我不能继承一个类DataFrame,我试图创建一个MyDataFrame包含a DataFrame并实现所有方法的类__add__,__mul__但是,考虑到可用于操作DataFrame的方法数量,这似乎是一种乏味的方法.
此外,我操作的数据源自物理硬件(频谱分析仪,示波器......),原则上,我希望有一组与数据帧的每一列相关联的元数据(测量带宽,平均数......).需要编码以保持与DataFrame结构一一对应的结构看起来很复杂(如果DataFrame得到转置怎么办?)
我发现一个优雅的解决方案是使用自定义对象而不是通常的Series对象名称.这些"MetaIndex"基本上是一个字符串+元数据,它将取代通常的列标签my_dataframe.columns.类定义看起来像这样:
class MetaIndex:
def __hash__(self):
return self.str.__hash__()
def __eq__(self,other):
return self.str == str(other)
def __init__(self,st):
self.str = format_name(st)
self._meta = MetaData()
def __repr__(self):
return self.str
def __str__(self):
return self.str
Run Code Online (Sandbox Code Playgroud)
然后,当我保存DataFrame(在hdf5文件中)时,我将其更改MetaIndex为常规字符串,并分别保存每个列的元数据,当我加载数据时,我重新实例化数据帧的列,例如:
s.replace_names_by_meta_index()
for c in s.columns:
col = s[c]
if col.meta is not None:
col.meta.set(**f["meta"][str(c)])
Run Code Online (Sandbox Code Playgroud)
1)您是否认为这是一种可行的方法,或者这是一种边际和危险的方法?
2)此外,一个非常诱人的扩展是使MetaIndex继承自str.这样,自动完成仍然适用于IPython(my_dataframe.col1).然而,在这种情况下,一些简单的操作,如my_dataframe.T.T使 …
我正在使用并行python executePipeline多次执行一个大函数().此功能也使用多处理(使用multiprocessing模块).
我使用并行python模块在我的控制台上正确显示日志消息时遇到了一些麻烦.当我不使用它时,日志消息很好地显示.
下面是它的工作原理.我有一个服务器每次从客户端收到请求时都会调用一个worker:
job = self.server.job_server.submit(func = executeWorker, args = (config, ) )
Run Code Online (Sandbox Code Playgroud)
每次有来自客户端的新请求时,都会从新线程执行此函数.然后,worker正在executePipeline使用多处理调用正在执行不同processus 的函数.
SocketServer.TCPServer我使用线程的服务器.我使用根记录器在服务器中设置了一个记录器:
self.logger = logging.getLogger()
self.logger.setLevel(logging.INFO)
self.logger.addHandler(logging.StreamHandler()
self.job_server = pp.Server(ncpus = 8) # for test
self.jobs = []
Run Code Online (Sandbox Code Playgroud)
当我运行我的服务器时,我只能从而executePipeline不是从子进程获取日志记录.此外,我只在作业结束时才记录执行管道,而不是在运行时.
这里还有工人代码.在"Executing pipeline with worker number "很好地显示在我的终端
'''
Setup logging
'''
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# worker name
publicIP = socket.gethostbyname(socket.gethostname())
pid = os.getpid()
workerID = unicode(str(publicIP) + ":" + str(pid))
logger.info( "Executing pipeline with worker {}".format(workerID)) …Run Code Online (Sandbox Code Playgroud) 我相信我没有正确安装我的C编译器.我正在尝试在我的Windows 8机器上安装一些Python 2.7软件包.我一直收到以下错误:
RuntimeError:破坏的工具链:无法链接简单的C程序.
Python安装正确,并且定期运行良好.我一直在使用该virutalenv软件包并在虚拟环境中工作.然后我尝试安装Cygwin,MinGW和MS Visual Studios 2012,这些似乎都没有virtualenv.我不确定我做错了什么,任何帮助都会很棒.
谢谢你,吉米
每次使用 PyAudio 播放声音时,我都会收到错误消息,并且无法抑制它们。
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or …Run Code Online (Sandbox Code Playgroud) 对于 Pandas:df.merge()方法,是他们获取合并摘要统计信息(例如匹配数、不匹配数等)的便捷方法。我知道这些统计数据取决于标志how='inner',但是知道使用内部联接等时“丢弃”了多少内容会很方便。我可以简单地使用:
df = df_left.merge(df_right, on='common_column', how='inner')
set1 = set(df_left[common_column].unique())
set2 = set(df_right[common_column].unique())
set1.issubset(set2) #True No Further Analysis Required
set2.issubset(set1) #False
num_shared = len(set2.intersection(set1))
num_diff = len(set2.difference(set1))
# And So on ...
Run Code Online (Sandbox Code Playgroud)
但认为这可能已经实施了。我是否错过了它(即类似report=True会返回的合并new_dataframe以及报告系列或数据框)
我想提取 1d CNN 层的权重,并了解如何准确计算预测值。我无法使用get_weights()函数的权重重新生成预测值。
为了说明我的理解,这里有一个小数据集。
n_filter = 64
kernel_size = 10
len_timeseries = 123
n_feature = 3
X = np.random.random(sample_size*len_timeseries*n_feature).reshape(sample_size,len_timeseries,n_feature)
y = np.random.random(sample_size*(len_timeseries-kernel_size+1)*n_filter).reshape(sample_size,
(len_timeseries-kernel_size+1),
n_filter)
Run Code Online (Sandbox Code Playgroud)
现在,创建一个简单的一维 CNN 模型,如下所示:
model = Sequential()
model.add(Conv1D(n_filter,kernel_size,
input_shape=(len_timeseries,n_feature)))
model.compile(loss="mse",optimizer="adam")
Run Code Online (Sandbox Code Playgroud)
拟合模型并预测如下值X:
model.fit(X,y,nb_epoch=1)
y_pred = model.predict(X)
Run Code Online (Sandbox Code Playgroud)
的维度y_pred是(1000, 114, 64)应该的。
现在,我想重现y_pred[irow,0,ilayer]]使用存储在model.layer. 由于只有单层,len(model.layer)=1. 所以我从第一层和唯一层中提取权重为:
weight = model.layers[0].get_weights()
print(len(weight))
> 2
weight0 = np.array(weight[0])
print(weight0.shape)
> (10, 1, 3, 64)
weight1 = np.array(weight[1])
print(weight1.shape)
> (64,) …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过Dropbox API v2上传大文件(~900MB)但我收到此错误:
requests.exceptions.ConnectionError :('Connection aborted.',ConnectionResetError(104,'peer reset by peer'))
它适用于较小的文件.
我在文档中发现我需要使用files_upload_session_start方法打开上传会话,但是我对此命令有错误,我无法继续使用.._ append方法.
我怎么解决这个问题?文档中没有信息.我正在使用Python 3.5.1和使用pip安装的最新dropbox模块.
这是我正在运行的代码:
c = Dropbox(access_token)
f = open("D:\\Programs\\ubuntu-13.10-desktop-amd64.iso", "rb")
result = c.files_upload_session_start(f)
f.seek(0, os.SEEK_END)
size = f.tell()
c.files_upload_session_finish(f, files.UploadSessionCursor(result.session_id, size), files.CommitInfo("/test900.iso"))
Run Code Online (Sandbox Code Playgroud) python ×10
pandas ×2
attributes ×1
audio ×1
c ×1
c++ ×1
dictionary ×1
dropbox-api ×1
dynamic ×1
keras ×1
keras-layer ×1
libxml2 ×1
logging ×1
lxml ×1
metadata ×1
pyaudio ×1
sqlalchemy ×1
virtualenv ×1
windows ×1
xpath ×1