小编TH3*_*339的帖子

从另一个脚本调用python unittest并导出所有错误消息

对不起基本问题.我使用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)

python unit-testing

7
推荐指数
1
解决办法
8725
查看次数

内存问题与memory.limit()

我在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而不会爆炸我的机器?谢谢!

memory-management r

7
推荐指数
1
解决办法
4792
查看次数

熊猫相当于rbind操作

基本上,我循环遍历一堆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)

PS

有点想象出来.实际上,您必须先标准化列名pd.concat.

python pandas

7
推荐指数
1
解决办法
9059
查看次数

python中的模糊文本搜索

我想知道是否有任何Python库可以进行模糊文本搜索.例如:

  • 我有三个关键字"letter","stamp""mail".
  • 我想有一个功能来检查这三个单词是否在同一段(或一定距离,一页)内.
  • 另外,这些词必须保持相同的顺序.在这三个单词之间出现其他单词很好.

我试过fuzzywuzzy哪个没能解决我的问题.另一个库Whoosh看起来很强大,但我找不到合适的功能......

python full-text-search fuzzy-search whoosh elasticsearch

6
推荐指数
1
解决办法
2247
查看次数

如何在Google应用引擎中添加Django的模型表单?

我已经建立了一个基于Google App Engine的网站.它包括十个模型,根据用户输入进行一些简单的计算.以前,它使用Python 2.5使用djangoform.modelform和db.model进行编码来处理数据.由于Python 2.7不支持djangoform.modelform,我想改用django modelform.但是,在迁移过程中,我遇到了一些问题(严重的内部错误).当我试图通过Django.forms.Modelform添加表单时.我提供了我的旧代码和新代码(不起作用).我的问题是:

  1. 如何使用Django库来解决我的问题?

  2. 如果有可能,我是否必须使我的网站成为一个项目,并为模型创建十个应用程序?

  3. 我是否必须修改我的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)

django google-app-engine django-forms

5
推荐指数
1
解决办法
2088
查看次数

jqplot垂直轴标签

一个非常简单的问题,但我无法弄清楚...我试图使用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)

javascript jquery jqplot

5
推荐指数
1
解决办法
7529
查看次数

在Google App Engine上运行SciPy的替代方案?

我需要在我的应用程序中运行一些统计测试,这需要来自scipy.stats的函数.但是我发现Google App Engine不信任SciPy.那么是否有任何GAE支持的库可以进行一些统计数据计算,例如生成随机数,估计CDF,运行T检验,检查正态性等等.谢谢!

google-app-engine scipy

5
推荐指数
1
解决办法
1545
查看次数

如何使用boto设置S3对象生命周期?

我使用boto将几个文件上传到Amazon S3 .但是,我无法使用语句设置生命周期(我知道这可以使用AWS管理控制台完成,但我需要允许每个用户决定保留文件的时间长度).

S3boto 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)

python amazon-s3 boto

4
推荐指数
1
解决办法
2672
查看次数

jQuery:条件显示基于下拉框选择的元素

我有两个相关的下拉列表,其中第二个下拉列表中的内容取决于第一个下拉列表中的选择.例如,在以下HTML代码中,您将首先选择应用程序方法.如果您选择Aerial作为应用方法,那么您将回答进一步的问题,例如天线尺寸dist.否则,您需要回答地面喷雾类型.

因此,一旦加载了网页,就会隐藏两个第二级下拉列表(空中大小,地面喷射类型).只有在第一个(应用方法)中进行相关选择时,它们才会出现.

我能够在jQuery(jQuery代码下面)中实现这个功能.但我的做法非常愚蠢.我的问题是:

  1. 有没有办法选择整行,而不使用它的序列计数(nth-child())?我可以根据选择元素ID来选择整行吗?例如,我可以先选择$('#id_A')然后将我的选择扩展到整行吗?

  2. 是否有更好的方法(循环?)来实现这个隐藏或显示功能而不是比较所有可能的选择(($(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)

javascript jquery

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

向量添加向量

一个非常愚蠢的问题,但我想不出正确的方法..

  1. A是2乘2矩阵,B是2乘1矩阵.
  2. 在10次迭代循环中,B_new = A*B. B_new是2比1.
  3. 在每次迭代后将B_new保存到输出矩阵B_final.所以最后,B_final是2乘10.

但是,我有一个循环中将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 numpy

3
推荐指数
1
解决办法
4184
查看次数