小编raf*_*ffo的帖子

使用一些可选的参数运行python脚本

我已经阅读了sys文档,但有些内容仍然不清楚.我在stackoverflow上寻找了一些类似的问题,但我没有找到任何有用的东西(显然任何引用都很感激!).

我想创建一个脚本 - 比如说foo.py- 我希望从3到6个参数传递:

$ python foo.py arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

在任何情况下都必须给出前3个论点; 如果没有传递任何内容,则在具有默认参数值的函数中使用最后3个参数.

问题是我该怎么做?到目前为止,我正在考虑编写类似下面的内容foo.py(这是一个简单的示例集,仅用于具体支持我的问题):

import sys

def example(credit_mom, credit_dad, debt_mom, debt_dad = 1000,
            salary = 2000, bonus = 0):
    total_gain = salary + credit_dad + credit_mom + bonus
    total_loss = debt_dad + debt_mom

    return total_gain - total_loss

if __name__ == '__main__':
    if len(sys.argv) < 4:
        sys.exit('Need at least 3 arguments. The order is as follows:\n\
            1.credit_mom;\n\
            2.credit_dad;\n\
            3.debt_mom;\n\
            4.others')
    else:
        sys.exit(example(sys.argv[1],
                         sys.argv[2],
                         sys.argv[3],
                         sys.argv[4], …
Run Code Online (Sandbox Code Playgroud)

python sys command-line-arguments argparse

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

pymc的后验概率

(这个问题最初发布于stats.O我搬到这里,因为它不具有关联.pymc在它与更普遍的问题:其实主要目的是为了有一个更好地了解如何pymc工作的.如果任版主的不要信.为了适合SO,我会从这里删除.)

我一直在这里和在SO中阅读pymc教程和许多其他问题.

我试图理解如何应用贝叶斯定理来计算使用某些数据的后验概率.特别是,我有一个独立参数元组

从数据中我想推断出可能性 ,哪里 是一个特定的事件.然后目标是计算

一些额外的评论:

  1. 这是一种无监督的学习,我知道 发生了,我想找出参数 最大化概率 .(*)
  2. 我还希望有一个并行程序,我可以pymc计算给定数据的可能性,然后对每个参数元组我想得到后验概率.

在下面我会假设 并且可能性是多维正态分布 (因为独立).

以下是我正在使用的代码(为简单起见,假设只有两个参数).代码仍处于开发阶段(我知道它无法正常工作!).但我认为包含它是有用的,然后在注释和答案之后对其进行优化,以便为将来的参考提供框架.

class ObsData(object):
    def __init__(self, params):
        self.theta1 = params[0]
        self.theta2 = params[1]

class Model(object):
    def __init__(self, data):
        # Priors
        self.theta1 = pm.Uniform('theta1', 0, 100)
        self.theta2 = pm.Normal('theta2', 0, 0.0001)

        @pm.deterministic
        def model(
            theta1=self.theta1,
            theta2=self.theta2,
        ):
            return (theta1, theta2)
        # Is this the actual likelihood?
        self.likelihood = pm.MvNormal(
            'likelihood',
            mu=model,
            tau=np.identity(2),
            value=data,  # …
Run Code Online (Sandbox Code Playgroud)

python bayesian mcmc pymc naivebayes

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

从字符串到带或不带毫秒的日期时间

我有一个字符串列表,每个字符串代表一个带或不带毫秒的时间,例如

l = ['03:18:45.2345', '03:19:23'] 我想将每个字符串转换为日期时间对象。现在我正在运行:

>>> l = ['03:18:45.2345', '03:19:23']
>>> for item in l:
...     print datetime.datetime.strptime(item, "%H:%M:%S.%f")
... 
1900-01-01 03:18:45.234500
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data '03:19:23' does not match format '%H:%M:%S.%f'
Run Code Online (Sandbox Code Playgroud)

因此,问题是:如何迭代转换对象中的每个元素的列表datetime

第一个想法是try..except..

try:
    print datetime.datetime.strptime(item, "%H:%M:%S.%f")
except:
    print datetime.datetime.strptime(item, "%H:%M:%S")
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点而不抓住ValueError

python datetime strptime

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

在 dc.js 工具提示中添加图形

我正在使用crossfilter和构建许多图表dc.js。其中,有一个行图和一个直方图(条形图)。

我想要做的是在行图上创建一个工具提示,它将显示直方图。

看着这个SO-question我看到了一个使用d3-tip. 我在这个jsfiddle 中进行了尝试。但是,我看不到如何div在工具提示中嵌入 a 。

有什么建议吗?(如果使用普通d3的更好,我可以接受。)

代码片段是:

function draw_row(div_id){ ...; return row_chart; }
function draw_hist(div_id){ ...; return bar_chart; }

var rate_chart = draw_row('#rate').title(function(){return'';});
dc.renderAll();

var tip = d3.tip()
    .attr('class', 'd3-tip')
    .offset([-10, 0])
    .html(function () {
        // What to put in here???
        draw_hist('#distr').render();
        return "<div id='distr'>Distribution<br></div>"
    });
d3.selectAll("#rate g.row")
    .call(tip)
    .on('mouseover', tip.show)
    .on('mouseout', tip.hide);
Run Code Online (Sandbox Code Playgroud)

tooltip d3.js dc.js

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

从python中的超类获取属性

我有一个基类,一堆子类,对于每个子类,我有另一组子类.例如:

class BaseClass(object):
    def __init__(self):
        with open(config.txt) as f
            self.config_array = f.readlines()

class FirstOrderSubClass(BaseClass):
    def __init__(self, name):
        self.name = name

class SecondOrderSubClass(FirstOrderSubClass):
    def __init__(self, name, version):
        self.name = name
        self.version = version
        super(SecondOrderSubClass, self).__init__(self.name)
        # needed to access self.config_array
        print self.config_array
Run Code Online (Sandbox Code Playgroud)

我需要得到__init__()的方法SecondOrderSubClass作如下分配:self.lines = self.config_array.

编辑:添加行print self.config_array.如果我运行代码我得到:

TypeError: __getattr__() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)

python oop inheritance class subclass

2
推荐指数
1
解决办法
3778
查看次数

将具有不匹配键的字典列表转储到 csv 文件中

这里询问如何将字典列表(具有匹配的键)转储到 csv 文件中。

我的问题是类似的,但是我假设字典不一定匹配键:在这种情况下,我希望该单元格没有值(或分配 None/0/..)。下面举例。

  • csv 模块中是否有允许我执行此操作的实用程序?
  • 在肯定的情况下,我该怎么做?
  • 在否定的情况下,我是否应该收集所有键,然后浏览所有字典并将缺失键的值设置为 None/0/...?

例子

to_csv = [{'name':'bob','age':25,'weight':200, 'height':181},
          {'name':'jim','age':31,'weight':180}]
Run Code Online (Sandbox Code Playgroud)

应该变成:

name,age,weight,height
bob,25,200,181
jim,31,180,None
Run Code Online (Sandbox Code Playgroud)

python csv dictionary

2
推荐指数
1
解决办法
316
查看次数