小编Tom*_*aly的帖子

生成随机数列表,总和为1

我如何列出N(比如100)随机数,以便它们的总和为1?

我可以用随机数列表

r = [ran.random() for i in range(1,100)]
Run Code Online (Sandbox Code Playgroud)

我如何修改它以使列表总和为1(这是用于概率模拟).

python random

65
推荐指数
5
解决办法
4万
查看次数

使用谷歌运营研究工具进行约束优化

我有一组很多(10000+)项,我必须从中选择20项.我只能选择一个项目.我的项目有利润和成本,以及几个布尔属性(如颜色).

我已阅读并阅读了https://developers.google.com/optimization/mip/integer_opt_cphttps://developers.google.com/optimization/mip/integer_opt中的教程,但我的约束与那些略有不同在那里.

每个项目都表示为一个元组:

item = ('item name', cost, profit, is_blue)
Run Code Online (Sandbox Code Playgroud)

举个例子

vase = ['Ming Vase', 1000, 10000, 0]

plate = ['China Plate', 10, 5, 1]
Run Code Online (Sandbox Code Playgroud)

并且项目的总集是列表列表:

items = [item1, item2, ..., itemN].
Run Code Online (Sandbox Code Playgroud)

我的利润和成本也列出:

profits = [x[2] for x in items]
costs = [x[1] for x in items]
Run Code Online (Sandbox Code Playgroud)

对于所选的每个项目,它需要具有最小值,并且至少5个项目必须将属性(is_blue)标志设置为1.

我想选择具有最高值的20个最便宜的项目,这样其中5个项目的属性标志设置为1.

我在使用谷歌OR工具制定这个问题时遇到了麻烦.

from ortools.linear_solver import pywraplp

solver = pywraplp.Solver('SolveAssignmentProblemMIP',
                       pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING)

x = {}

for i in range(MAX_ITEMS):
    x[i] = solver.BoolVar('x[%s]' % (i))

#Define the constraints 
total_chosen = 20 …
Run Code Online (Sandbox Code Playgroud)

python mathematical-optimization constraint-programming or-tools

9
推荐指数
1
解决办法
609
查看次数

编写和抛光CSV解析器

作为最近项目的一部分,我必须从CSV文件中读取和写入并放入c#中的网格视图中.最后决定使用一个现成的解析器为我做的工作.

因为我喜欢做那种东西,我想知道如何写自己的东西.

到目前为止,我所做的就是:

//Read the header
            StreamReader reader = new StreamReader(dialog.FileName);
            string row = reader.ReadLine();
            string[] cells = row.Split(',');

            //Create the columns of the dataGridView
            for (int i = 0; i < cells.Count() - 1; i++)
            {
                DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
                column.Name = cells[i];
                column.HeaderText = cells[i];
                dataGridView1.Columns.Add(column);
            }

            //Display the contents of the file
            while (reader.Peek() != -1)
            {
                row = reader.ReadLine();
                cells = row.Split(',');
                dataGridView1.Rows.Add(cells);
            }
Run Code Online (Sandbox Code Playgroud)

我的问题:这样做是一个明智的想法,如果是(或不是),我将如何正确地测试它?

c# parsing

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

MVC分页与部分视图

我是一个相对较新的MVC用户,并且很难让分页在MVC中正常工作.

基本上我有一堆搜索结果在局部视图中呈现(使用像这样的开始表单方法):

using (Ajax.BeginForm("Search", "Home", new AjaxOptions
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "searchResults",
}))
{
    <input type="text" name="searchString" />
    <input type="submit" value="Search" />
}
Run Code Online (Sandbox Code Playgroud)

并且部分视图因此呈现:

@foreach (var item in @Model)
Run Code Online (Sandbox Code Playgroud)

{

<li>@Html.ActionLink(item.Name, "Result/" + item.Id, "Result")</li>

}

@{if(ViewBag.HasPrevious)
    {
        @Html.ActionLink("<<", "Search", new { searchString = ViewBag.query, page = ViewBag.CurrentPage-1 })
    }
}

@{if(ViewBag.HasNext)
    {
        @Html.ActionLink(">>", "Search", new {  searchString = ViewBag.query, page = ViewBag.CurrentPage+1 })
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是>>或<<链接只是创建一个空白页面,其中包含结果列表,并且不会保留"顶部"索引页面的标记.

有没有人对此有任何想法.

NB我是这个网站的新手,我会提出任何答案.

asp.net-mvc paging

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

熊猫中多索引的百分比

我需要找到MultiIndex列的百分比(“计数”)。我的DataFrame看起来像:

            count
A  week1     264

   week2      29

B  week1     152

   week2      15
Run Code Online (Sandbox Code Playgroud)

我想添加一列“百分比”

            count percent
A  week1     264      0.9

   week2      29      0.1

B  week1     152     0.91

   week2      15     0.09
Run Code Online (Sandbox Code Playgroud)

我知道我可以找到想要的总数

mydf.sum(level=[0, 1])
Run Code Online (Sandbox Code Playgroud)

但我似乎无法弄清楚如何将其转换为百分比。

python python-3.x pandas

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

交叉拆分字符串作为列表c#

目前我需要将字符串交错到一个单一的列表,但是如何做到这一点却不知所措.

我目前使用的代码就是这个(我还没有走得太远):

 public PartialViewResult Interleave(string details, string ids)
    {
            List<string> detailList = details.Split(',').ToList();
            List<string> idlist = ids.Split(',').ToList();
            return PartialView("_ConceptDetail1", detailList)     
    }
Run Code Online (Sandbox Code Playgroud)

有没有标准的方法来交错列表?

c# asp.net-mvc

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

numpy中的部分金额和产品

我正在尝试在numpy中构建另一个数组条目的部分产品数组.到目前为止,我有:

from numpy.random import dirichlet
from numpy import ones, prod

alpha = ones(100)
p = dirichlet(alpha)
Run Code Online (Sandbox Code Playgroud)

我知道通过切割我的数组,我可以做任何部分产品.例如:

q = prod(p[0:10])
Run Code Online (Sandbox Code Playgroud)

返回前10个条目的乘积p.

我怎样才能构建数组,q以便输入ii-1以前值的乘积p

我试过了:

for i in p:
    q[i+1] = prod(p[0:i-1])
Run Code Online (Sandbox Code Playgroud)

但是,这会抛出numpy.float64不支持项目分配错误.

我该如何构建这个阵列?对于资金,我能不能代替prodsum

python numpy

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

Symbol的函数定义为void:elpy-enable

我正在使用 Emacs 24 并尝试使用该elpy包,但收到错误:

“符号的函数定义无效:elpy-enable”

(package-initialize)
(elpy-enable)
(elpy-use-ipython)
Run Code Online (Sandbox Code Playgroud)

我正在使用的模式(elpy)只是说将这些行添加到我的 .emacs 文件中,一切都会好起来的(我已经在 python 端安装了这个模式)。

加载 emacs--debug-init提供以下内容

  (elpy-enable)
  eval-buffer(#<buffer  *load*> nil "/home/tk12098/.emacs" nil t)  ; Reading at buffer position 354
  load-with-code-conversion("/home/tk12098/.emacs" "/home/tk12098/.emacs" t t)
  load("~/.emacs" t t)
  #[0 "\205\262
Run Code Online (Sandbox Code Playgroud)

队伍开始#[0 "....似乎要持续一段时间。

我应该如何解决这个问题?

emacs

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

使用随机1填充稀疏列表

我需要在随机位置填充一些带有1个的列表.我可以成功创建一个随机数列表:

from random import randint
l = [randint(0,1023) for _ in range(0,10)]
Run Code Online (Sandbox Code Playgroud)

如何在l指定的位置填充1的列表?

python

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

规范化数字列表时,结果全为零

我需要规范化列表中的值以产生(累积)概率分布,但是目前我只是将0输出.

这是我正在做的事情:

tests = []
#some code to populate tests which simulates
count = [x[0] for x in tests]
found = [x[1] for x in tests]
found.sort()
num = Counter(found)
freqs = [x for x in num.values()]
cumsum = [sum(item for item in freqs[0:rank+1]) for rank in xrange(len(freqs))]
normcumsum  = [float(x/numtests) for x in cumsum]
Run Code Online (Sandbox Code Playgroud)

目前,cumsum和normcumsum是:

cumsum = [1, 2, 6, 12, 28, 39, 64, 85, 96, 98, 99, 100]
normcumsum = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, …
Run Code Online (Sandbox Code Playgroud)

python

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

消除链接列表中的额外调用

我正在实现一个链表(在我的休息时间!),我发现我有这样的结构的函数:

void traverseList(node *head){
if(head != 0){
    while(head->next !=0){
        cout << head->data << endl;
        head = head->next;
    }

    //one extra for the node at the end
    cout << head->data << endl;
}
}
Run Code Online (Sandbox Code Playgroud)

我想知道有没有人知道如何消除"一个额外的"电话?

c++ linked-list

0
推荐指数
1
解决办法
53
查看次数

递归计数访问的节点

我需要计算我在树上访问的节点数量,同时查找令牌(在本例中为1).到目前为止,我想出了:

def search_recursive(node,rounds=0):
    if len(node)==2:
         if node[1]==1:
             print rounds
    else:
         rounds += 1
         huff_search_recursive(node[1],rounds)
         huff_search_recursive(node[2],rounds)
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试将轮数分配给以下任何内容:

def search_recursive(node,rounds=0):
    if len(node)==2:
        if node[1]==1:
            return rounds
    else:
        rounds += 1
        huff_search_recursive(node[1],rounds)
        huff_search_recursive(node[2],rounds)
Run Code Online (Sandbox Code Playgroud)

Python为任何变量赋予None.例如.

rounds = search_recursive(node)
Run Code Online (Sandbox Code Playgroud)

节点的一个例子是:

node = (1.0, (0.5, 0), (0.5, (0.25, 0), (0.25, (0.125, 1), (0.125, 0))))
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释是什么导致了这个错误,以及我将来如何测试它?

python tree

0
推荐指数
1
解决办法
131
查看次数

自定义变压器和GridSearch-管道中的ValueError

我正在尝试使用一些自定义转换器来优化scikit-learn管道中的超参数,但我不断遇到错误:

from sklearn.model_selection import TimeSeriesSplit
from sklearn.model_selection import GridSearchCV
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.pipeline import Pipeline

class RollingMeanTransform(BaseEstimator, TransformerMixin):

    def __init__(self, col, window=3):
        self._window = window
        self._col = col

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        df = X.copy()
        df['{}_rolling_mean'.format(self._col)] = df[self._col].shift(1).rolling(self._window).mean().fillna(0.0)
        return df


class TimeEncoding(BaseEstimator, TransformerMixin):

    def __init__(self, col, drop_original=True):
        self._col = col 
        self._drop_original = drop_original

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        X = X.copy()
        unique_vals = float(len(X[self._col].unique()))
        X['sin_{}'.format(self._col)] = np.sin(2 * …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn grid-search

-1
推荐指数
1
解决办法
472
查看次数