小编Joh*_*nes的帖子

在Python中随机舍入到整数

我正在寻找一种方法,根据从小数点后面的数字得出的概率,将浮点数向上或向下舍入到下一个整数.例如,浮点数6.1可以舍入为6和7.舍入为7的概率为0.1,舍入为6的概率为1-0.1.因此,如果我无限次运行此舍入实验,则所有整数结果的平均值应再次为6.1.我不知道这样的程序是否有名称,以及Python中是否已经实现了函数.当然,如果有可能以相同的方式舍入到例如2位小数,那将是非常好的.

那有意义吗?有任何想法吗?

python integer probability rounding

6
推荐指数
3
解决办法
3476
查看次数

基于主键列表的高效sqlite查询

为了根据 ID 列表(即不同的主键)查询 sqlite 表,我使用了以下语句(基于Chinook 数据库的示例 ):

SELECT * FROM Customer WHERE CustomerId IN (1,2,3,8,20,35)
Run Code Online (Sandbox Code Playgroud)

但是,我的实际 ID 列表可能会变得相当大(> 1000)。因此,我想知道这种使用IN语句的方法是否最有效,或者是否有更好/优化的方法来基于主键列表查询 sqlite 表。

sqlite performance select primary-key

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

R中写入(通用)函数的参数和类

我想用几个非常简单的函数制作一个小R包.我使用的文献是"创建R包:教程"和"编写R扩展".虽然我尝试过,但我并不真正理解泛型函数和方法的概念以及如何处理不同函数内的参数.

这是我的代码如何看似的一个小例子:

#Make generic function
f <- function(x,...) UseMethod("newmethod")

#Default method
f.default <- function(a,b=5,c=3,...){
    out <- a+b+c
    class(out) <- "fclass"
}

# Print method
print.f <- function(x,...){
    cat("Result:")
    print(x)
}

# Summary method
summary.f <- function(object,...){
    res <- object
    class(res) <- "fsummary"
    print(res)
}

# Plot method
plot.f <-function(x,p=0.3,...){}
Run Code Online (Sandbox Code Playgroud)

我有一个名为f的函数,默认为f.default.实际上我的函数需要几个参数(非它们被定义为x),那么我如何制作我的泛型函数呢?print方法应该只打印f.default的输出(在这个简单的情况下类似于摘要输出).plot.f方法使用f.default的输出和一个附加参数(强制性).如何正确编写这些功能?通常的方法使用像"对象"和"x"这样的参数...但正如我所说,我的函数中不需要任何变量x ...我有点困惑......也许有人可以提供帮助.

如果有人在那里如何愿意帮助我解决这个问题,我也可以发送"真正的"R代码(不仅仅是这个虚构的例子).

generics methods r function

5
推荐指数
2
解决办法
3159
查看次数

具有指定(附加)列的 Pandas 数据透视

我有两个不同的元组列表,它们被转换为 pandas 数据框:

ls1 = [(1,"A",2),(1,"B",1),(1,"C",3),(2,"A",4),(2,"B",4,),(2,"C",5)]
ls2 = [(1,"A",2),(1,"C",3),(1,"B",1),(1,"D",6),(2,"A",4),(2,"C",5),(2,"B",4,)]
df1 = pandas.DataFrame(ls1, columns=['ID', 'Class', 'count'])
df2 = pandas.DataFrame(ls2, columns=['ID', 'Class', 'count'])
Run Code Online (Sandbox Code Playgroud)

现在我想从两个数据帧创建一个数据透视表,其中包含类“A”、“B”、“C”、“D”的列名称。因此,所有四个列名称(如果可能的话也按指定的顺序)应该存在于生成的数据透视表中。如果 ID-Class 组合没有计数,则应使用 NaN 等填充。

dfpivot1 = df1.pivot(index='ID', columns='Class', values='count')
dfpivot2 = df2.pivot(index='ID', columns='Class', values='count')

>>> dfpivot1
Class  A  B  C
ID            
1      2  1  3
2      4  4  5
>>> 
Run Code Online (Sandbox Code Playgroud)

使用.pivotpandas 提供了 的数据透视表df1,但只有三个类列(“A”、“B”、“C”)。因此,dfpivot1需要修改为具有“A”、“B”、“C”和“D”列,从而与 的列完全匹配dfpivot2。当我从元组列表开始时,其他方法(不使用pandas)可能会很有趣。

python pivot pandas

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

按另一个列表过滤Python列表

如何根据python中的另一个列表/集过滤列表列表.对于一个简单的列表,可以这样做:

mylist = [1,2,3,4,5,3,5,2,3,2,7,5,3]
[x for x in mylist if x in {3,5}]
Run Code Online (Sandbox Code Playgroud)

但是如何最有效地为列表列表执行此操作:

mylistoflists = [[], [5, 1, 6], [5, 1, 6, 2, 7], [5, 1, 6, 2, 7, 4, 8], [5, 1, 11, 10], [5, 1, 4, 11, 10, 12]]
myvalues = set([4,10])
Run Code Online (Sandbox Code Playgroud)

结果应该仍然是以下列表:

 [[], [], [], [4], [10], [4, 10]]
Run Code Online (Sandbox Code Playgroud)

python list

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

将两个带有部分空子列表的 Python 列表组合起来

我有一个嵌套列表(列表列表),其中每个子列表可能包含一个或多个元素(整数),但有些甚至是空的:

mynestedlist = [[], [], [], [4,10], [4], [10]]
Run Code Online (Sandbox Code Playgroud)

此外,我还有另一个相同长度的列表(均为整数):

otherlist = [2,4,14,32,21,12]
Run Code Online (Sandbox Code Playgroud)

现在我想获取嵌套列表元素不为空的元素的元组组合列表。实际上每个元组应该包含两个列表中的元素。

例如,第 mynestedlist4 个非空列表是[4,10]。otherlist 中的相应元素是 32。该信息应被强制转换为两个元组(32,4)(32,10)。因此,如果子列表中有多个条目,mynestedlist则应创建多个元组。最后输出应该是[(32,4),(32,10),(21,4),(12,10)]. 如何才能有效地做到这一点?

所以到目前为止我尝试的是

*) 使用子列表的总和检查子列表是否为空

[sum(x)>0 for x in mynestedlist]
Run Code Online (Sandbox Code Playgroud)

*) 将两个列表组合成一个字典

combined_list = dict(zip(otherlist,mynestedlist))
Run Code Online (Sandbox Code Playgroud)

我完全不确定这是否是正确的方法?

python list-comprehension list

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

Python带有密钥和值列表的列表

我有三个每个x元素的列表:

stat = ["A","B","C"]
X = [1,2,3]
Y = [10,15,20]
Run Code Online (Sandbox Code Playgroud)

不,我想从列表中创建dict,其中'stat'应该是关键,而X和Y是存储在每两个元素的列表中的值对.结果可能如下:

my_dict = {
    "A" : [1,10],
    "B" : [2,15],
    "C" : [3,20]
}
Run Code Online (Sandbox Code Playgroud)

或者甚至可以是嵌套的dict,以便我可以使用my_dict ["A"] ["X"]对其进行索引.

或者有没有其他方法来获得python中的"命名数组"?

因为我有第二个与第一个问题非常相关的问题,我只是在这里添加而不是打开一个新问题:

我非常习惯于R的数组.因此我的问题:在python中是否有类似命名的数组?例如,我有两个列表代表我的列和rownames:

columns = ["A","B","C"], rows = ["row_a","row_b","row_c"]
Run Code Online (Sandbox Code Playgroud)

现在我想从这两个列表中创建一个数组:

my_array = columns x rows
Run Code Online (Sandbox Code Playgroud)

我想用以下名称索引:

my_array["A","row_b"]
Run Code Online (Sandbox Code Playgroud)

并在循环中为"单元格"(填充数组)赋值.

是否有可能以简单的方式在python中执行此类操作?可能这也是最好用字典来使用字符串索引..

python arrays dictionary

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

R 中的正则表达式与异常 (grep)

使用R我想从字符串向量中获取以 结尾的所有字符串,_XXX除了那些前面有“Total”一词的字符串_XXX

mystringvector <- c("str1_XXX","str2_XXY","str3_XXX","Total_XXX")
grep("*_XXX",mystringvector,value=TRUE)
Run Code Online (Sandbox Code Playgroud)

结果应该只返回str1_XXXstr3_XXX。但我怎样才能包含Total_.

regex r

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

有条件地设置python变量

我想基于另一个变量设置变量.在我的情况下,var1可以是"mean","sum"或"max"(从gui解析的输入).根据这些字符串,我想设置(有条件地)另一个变量; 如:如果var1是"mean"则var2 = 2,如果var1 ="sum"则var2 = 4,如果var1 ="max"则var2 = 6.

最好的方法是什么(初学者)?如果我在if else过程中使用它,我需要使变量全局使用它们也在if之外吗?有推荐的程序吗?

python variables

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

在 R 的包函数中使用 ddply 的可视化绑定

我有一个类似的问题,就像这里已经讨论过的一样: Novisible绑定for全局变量Note in R CMD check

就我而言,我在自己的包中使用 ddply 函数,当我检查 R 包时,我得到一条注释:“全局变量‘VARX’没有可见的绑定。

所寻址的代码行是:

subsample <- ddply(my_data, .(VARX), function(x){x[sample(nrow(x), 1), ]})
Run Code Online (Sandbox Code Playgroud)

变量 VARX 是包 (sysdata) 提供的数据帧中的一列。改进代码以获得适当的 R 包的良好做法是什么?

r package plyr

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