对不起基本问题.我使用unittest方法在一个脚本中检查我的模型.现在,我的问题是如何从另一个文件调用此脚本并保存测试结果.以下是我的代码示例:
**model_test.py**
import unittest
import model_eq #script has models
class modelOutputTest(unittest.TestCase):
def setUp(self):
#####Pre-defined inputs########
self.dsed_in=[1,2]
#####Pre-defined outputs########
self.msed_out=[6,24]
#####TestCase run variables########
self.tot_iter=len(self.a_in)
def testMsed(self):
for i in range(self.tot_iter):
fun = model_eq.msed(self.dsed_in[i],self.a_in[i],self.pb_in[i])
value = self.msed_out[i]
testFailureMessage = "Test of function name: %s iteration: %i expected: %i != calculated: %i" % ("msed",i,value,fun)
self.assertEqual(round(fun,3),round(self.msed_out[i],3),testFailureMessage)
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
我想要的下一步是创建另一个名为test_page.py的脚本,该脚本运行单元测试脚本并将结果保存到变量(我需要将结果发布到网页).
test_page.py
from model_test.py import *
a=modelOutputTest.testMsed()
Run Code Online (Sandbox Code Playgroud)
但是,我收到了以下错误.
Traceback (most recent call last):
File "D:\Dropbox\AppPest\rice\Rice_unittest.py", line 16, in <module>
a= RiceOutputTest.testMsed()
TypeError: unbound …Run Code Online (Sandbox Code Playgroud) 我在16GB内存的机器上运行一些模拟.首先,我遇到了一些错误:
Error: cannot allocate vector of size 6000.1 Mb (the number might be not accurate)
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下命令为R分配更多内存:
memory.limit(1E10)
Run Code Online (Sandbox Code Playgroud)
选择这么大的数字的原因是因为memory.limit不能让我选择一个小于我的系统总内存的数字
In memory.size(size) : cannot decrease memory limit: ignored
Run Code Online (Sandbox Code Playgroud)
在这样做之后,我可以完成我的模拟,但R占用了大约15GB的内存,这阻止了我进行任何后期分析.
我曾经object.size()估计所有生成的变量使用的总内存,只占用了大约10GB.我无法想象R占据了剩余的记忆.所以我的问题是如何合理地将内存分配给R而不会爆炸我的机器?谢谢!
基本上,我循环遍历一堆CSV文件,最后想将append每个数据帧合二为一.实际上,我只需要一个rbind类型函数.所以,我做了一些搜索,并按照指南.但是,我仍然无法获得理想的解决方案.
下面附有示例代码.例如,data1的形状总是47乘42但是data_out_final在前三个文件之后变为(47,42),(47,84)和(47,126)的形状.理想情况下,它应该是(141,42).另外,我检查索引data1,这是RangeIndex(start=0, stop=47, step=1).感谢任何建议!
我的pandas版本是0.18.1
appended_data = []
for csv_each in csv_pool:
data1 = pd.read_csv(csv_each, header=0)
# do something here
appended_data.append(data2)
data_out_final = pd.concat(appended_data, axis=1)
Run Code Online (Sandbox Code Playgroud)
如果使用data_out_final = pd.concat(appended_data, axis=1),data_out_final的形状变为(141,94)
有点想象出来.实际上,您必须先标准化列名pd.concat.
我想知道是否有任何Python库可以进行模糊文本搜索.例如:
我试过fuzzywuzzy哪个没能解决我的问题.另一个库Whoosh看起来很强大,但我找不到合适的功能......
我已经建立了一个基于Google App Engine的网站.它包括十个模型,根据用户输入进行一些简单的计算.以前,它使用Python 2.5使用djangoform.modelform和db.model进行编码来处理数据.由于Python 2.7不支持djangoform.modelform,我想改用django modelform.但是,在迁移过程中,我遇到了一些问题(严重的内部错误).当我试图通过Django.forms.Modelform添加表单时.我提供了我的旧代码和新代码(不起作用).我的问题是:
如何使用Django库来解决我的问题?
如果有可能,我是否必须使我的网站成为一个项目,并为模型创建十个应用程序?
我是否必须修改我的yaml文件,并创建新的url.py,setting.py等?
我非常感谢任何评论和建议.我使用的是Python 2.7,GAE 1.6.2和Django 1.2.
这是有问题的代码(代码1).
import webapp2 as webapp
import django
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
import os
from django.db import models
from django.forms import ModelForm
class trexInp(models.Model):
chemical_name = models.CharField(max_length=255)
class trexInput(ModelForm):
class Meta:
model = trexInp
class trexInputPage(webapp.RequestHandler):
def get(self):
html = str(trexInput())
self.response.out.write(html)
app = webapp.WSGIApplication([('/.*', trexInputPage)], debug=True)
def main():
run_wsgi_app(app)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
为了比较,我附上了旧代码(代码2).
import webapp2 as webapp
from google.appengine.ext.webapp.util import run_wsgi_app …Run Code Online (Sandbox Code Playgroud) 一个非常简单的问题,但我无法弄清楚...我试图使用jqplot生成一个垂直y轴标签的线图.基于jqplot网站的示例,我只需要使用这个插件jqplot.canvasAxisLabelRenderer.min.js.我在当地试了一下,但没办法.任何人都可以给我一个暗示吗?这是我的问题的演示.
以下是我的代码:
$(document).ready(function(){
$.jqplot.config.enablePlugins = true;
var s1 = $.parseJSON($('#x_indi_val').text());
$.jqplot('chart1', [s1], {
seriesDefaults: {
showMarker:false,
pointLabels: { show:false } ,
},
series:[
{label:'Individuals'}
],
axes: {
xaxis: {
label :'Time units',
pad: 0,
},
yaxis: {
label: 'Number of individuals',
//jqplot example indicated that use the following js file can give you a vertical label, I tried locally, but it did not work
//renderer: $.jqplot.canvasAxisLabelRenderer
}
},
legend: {
show: true,
location: 'ne', …Run Code Online (Sandbox Code Playgroud) 我需要在我的应用程序中运行一些统计测试,这需要来自scipy.stats的函数.但是我发现Google App Engine不信任SciPy.那么是否有任何GAE支持的库可以进行一些统计数据计算,例如生成随机数,估计CDF,运行T检验,检查正态性等等.谢谢!
我使用boto将几个文件上传到Amazon S3 .但是,我无法使用语句设置生命周期(我知道这可以使用AWS管理控制台完成,但我需要允许每个用户决定保留文件的时间长度).
S3的boto API参考正确记录了configure_lifecycle(lifecycle_config,headers = None)作为解决方案,但我无法配置它.谁能纠正我的代码?
谢谢!
key='key'
secretkey='secretkey'
#build the connection
conn = S3Connection(key, secretkey)
bucket = conn.create_bucket('przm')
k=Key(bucket)
#select and upload the file
name1='run1'
k.key=name1
k.set_contents_from_filename('RUN')
link1='https://s3.amazonaws.com/przm/'+name1
#allow anyone can download this file
k.set_acl('public-read-write')
#delete this file after one day. Can anyone give me some help here?
configure_lifecycle(lifecycle_config, headers=None)
Run Code Online (Sandbox Code Playgroud) 我有两个相关的下拉列表,其中第二个下拉列表中的内容取决于第一个下拉列表中的选择.例如,在以下HTML代码中,您将首先选择应用程序方法.如果您选择Aerial作为应用方法,那么您将回答进一步的问题,例如天线尺寸dist.否则,您需要回答地面喷雾类型.
因此,一旦加载了网页,就会隐藏两个第二级下拉列表(空中大小,地面喷射类型).只有在第一个(应用方法)中进行相关选择时,它们才会出现.
我能够在jQuery(jQuery代码下面)中实现这个功能.但我的做法非常愚蠢.我的问题是:
有没有办法选择整行,而不使用它的序列计数(nth-child())?我可以根据选择元素ID来选择整行吗?例如,我可以先选择$('#id_A')然后将我的选择扩展到整行吗?
是否有更好的方法(循环?)来实现这个隐藏或显示功能而不是比较所有可能的选择(($(this).val()=="X"))?
谢谢!
这是HTML代码,表单由Django生成:
<div class="articles">
<form method="GET" action=_output.html>
<table align="center">
<tr><th><label for="id_application_method">Application method:</label></th><td><select name="application_method" id="id_application_method">
<option value="">Pick first</option>
<option value="A">Aerial</option>
<option value="B">Ground</option>
</select></td></tr>
<tr><th><label for="id_A">Aerial Size Dist:</label></th><td><select name="aerial_size_dist" id="id_A">
<option value="A1" selected="selected">A1</option>
<option value="A2">A2</option>
</select></td></tr>
<tr><th><label for="id_B">Ground spray type:</label></th><td><select name="ground_spray_type" id="id_B">
<option value="B1" selected="selected">B1</option>
<option value="B2">B2</option>
</select></td></tr>
</table>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
这是jQuery代码:
<script type="text/javascript" src=" https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<script>$(function() {
$("tr:nth-child(2)").hide();
$("tr:nth-child(3)").hide();
$('#id_application_method').change(function() {
($(this).val() == "A") ?
$("tr:nth-child(2)").show() : $("tr:nth-child(2)").hide();
($(this).val() == "B") ?
$("tr:nth-child(3)").show() : $("tr:nth-child(3)").hide();
});});</script>
Run Code Online (Sandbox Code Playgroud) 一个非常愚蠢的问题,但我想不出正确的方法..
但是,我有一个循环中将B添加到B_new的问题.以下是我的代码,有人能给我一些建议吗?
import numpy as np
a=np.ones(shape=(2,2))
b=np.ones(shape=(2,1))
c_final=np.zeros(shape=(2,10))
for i in range(0,10):
c=np.dot(a,b)
b=c
c_final[:,i]=c
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
c_final[:,i]=c
ValueError: output operand requires a reduction, but reduction is not enabled
Run Code Online (Sandbox Code Playgroud) python ×5
javascript ×2
jquery ×2
amazon-s3 ×1
boto ×1
django ×1
django-forms ×1
fuzzy-search ×1
jqplot ×1
numpy ×1
pandas ×1
r ×1
scipy ×1
unit-testing ×1
whoosh ×1