如何解决.append方法在我定义的函数中不起作用
我正在尝试定义一个函数,以在给定分布的情况下获取与数字相对应的百分位数。
这是我定义函数的方式:
def minimum_percentile(sample,number):
percentiles = []
for i in range(100):
percentile = np.percentile(sample,i)
if percentile.any() >= number:
percentiles.append(percentile)
else:
continue
return min(percentiles)
当我调用函数时:
minimum_percentile(packages_means,33.1388)
我得到的错误与以下事实有关:我的函数似乎没有填充空列表,从而得到以下错误消息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-64-9923821f6175> in <module>
----> 1 minimum_percentile(packages_means,33.1388)
<ipython-input-63-955dedc13fde> in minimum_percentile(sample,number)
5 if percentile.any() >= number:
6 percentiles.append(percentile)
----> 7 return min(percentiles)
ValueError: min() arg is an empty sequence
我的代码怎么了?
解决方法
我设法修复它,这是我使用的代码:
def minimum_percentile(sample,number):
percentiles = []
for i in range(100):
percentile = np.percentile(sample,i)
if percentile <= number:
percentiles.append(i)
else:
continue
return max(percentiles)
,
我用了一些代码,但min()函数似乎不起作用,因为您的列表“百分位数”为空。所以我添加了一个部分,我检查了列表是否为空,程序应该返回“ None”,这就是我得到的:
import numpy as np
def minimum_percentile(sample,i)
if percentile >= number:
percentiles.append(percentile)
else:
continue
if not percentiles:
return "None"
else:
return min(percentiles)
l = [1,2,3,4,5]
minimum_percentile(l,2.5)
2.52
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。