python的quantile函数问题,求解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的quantile函数问题,求解答相关的知识,希望对你有一定的参考价值。

想问一下比如x=[1,2,3,4];a=x.quantile(0.25)这样不能求x的上四份位数吗?不知道为啥老报错
list不能用quantile吗?

list下面没有方法quantile,当然不能使用。
你得确认下quantile是哪个模块下面的,pandas下面有一个,
pandas.Series.quantile()

例:

import pandas as pd
s = pd.Series([1, 2, 3, 4])
s.quantile(0.25)追问

谢谢

参考技术A Def (self)更改为: def (self) ,init 的前面和后面是两个连续的下划线。如果你从未使用过25,而且你不认为旧 python 中的内置函数会有下划线,试试给初学者使用25?皮斯

高分求python大神帮忙解答,实在有难度,做不出来

定义一个函数,名字为sameSums(aList),alist是一个整形数组,函数作用是判断能分成两组,使得两组数字的和相等。若可以择返回值是true,若不可以返回值是false。如下例:
sameSums([4, 7, 6, 3]) --> True //4+6 = 10 and 7 + 3 = 10
sameSums([3, 3]) --> True
sameSums([4, 12, 16]) --> True //4+12= 16 and 16
sameSums([5, 1]) --> False

"""用itertools的组合工具combinations生成所有组合方案"""

import itertools

def sameSums(alst):
    allsummary = sum(alst)
    if allsummary % 2:
        # 数组总和不能被2整除既不可均分为等值的两部分
        return False
    halfsum = allsummary / 2  # 总和的半值为检测目标
    for l in xrange(1, len(alst)/2+1):
        # 方案第一部分的数组长度从1位到数组半长
        for sub in list(itertools.combinations(alst, l)):
            # 按指定长度遍历组合方案
            if sum(sub) == halfsum:
                # 若当前方案的和为目标值则当前方案有效
                # another为方案的第二部分数据列表
                another = alst[:]
                for x in sub:
                    another.pop(another.index(x))
                print sub, tuple(another)                
                return True
    return False


def optsamesum(alst):
    """优化一下"""
    allsummary = sum(alst)
    if allsummary % 2:
        return False
    halfsum = allsummary / 2
    if max(alst) > halfsum:
        return False
    sortedlst = sorted(alst)[::-1]
    for l in xrange(1, len(alst)/2+1):
        for sub in list(itertools.combinations(sortedlst, l)):
            if sum(sub) < halfsum:
                break
            if sum(sub) == halfsum:
                another = sortedlst[:]
                for x in sub:
                    another.pop(another.index(x))
                print list(sub), another
                return True
    return False

if __name__ == "__main__":
    sameSums([4, 7, 6, 3])
    sameSums([3, 3])
    sameSums([4, 12, 16])
    sameSums([5, 1])

参考技术A 当做一个背包问题来解,判断最大装入是否等于背包的容量,算法具体意义请百科,示例如下:
def test(a):
total_value = sum(a)
if sum(a)%2 != 0:
return False
#背包载重量
m = total_value/2
#n的个数
n=len(a)-1
x = [False for raw in range(n + 1)]
v = 0
optp = [[0 for col in range(m + 1)] for raw in range(n + 1)]
#计算optp[i][j]
for i in range(1, n + 1):
for j in range(1, m + 1):
optp[i][j] = optp[i - 1][j]
if (j >= a[i]) and (optp[i - 1][j - a[i]] + a[i] > optp[i - 1][j]):
optp[i][j] = optp[i - 1][j - a[i]] + a[i]
#递推装入背包的物体
j = m
for i in range(n, 0, -1):
if optp[i][j] > optp[i - 1][j]:
x[i] = True
j = j - a[i]
#返回最大价值
v = optp[n][m]
return v == m
#test...
a = [21,5,38,11,10,17,15,27,25,44,22,8,26,13,16,\
37,1,24,31,19,2,14,28,3,33,23,43,20,12,14]
b = [4,7,6,3]
c = [3,3]
d = [5,1]
e = [4,12,16]
print test(a)
print test(b)
print test(c)
print test(d)
print test(e)
#...test

以上是关于python的quantile函数问题,求解答的主要内容,如果未能解决你的问题,请参考以下文章

求一段python程序,定义一个函数,输入为两个list,return是两个list的交集和并集。 求高手解答

求大神解答find函数

Python求解答过程

r 仅从 quantile() 函数中获取值

如何在 R 或 RStudio 中的 apply() 函数中嵌套 quantile() 函数

python问题,跪求大神解答