列长度操作

2024-10-05 13:26:04 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,如果我使用了错误的语言来解释我在操作什么,我很抱歉,我对python还很陌生,对python的知识还远远不够

我目前正在尝试对一列数据的长度进行操作,但是遇到了一些问题。这些列来自第7个sdss数据转储的.fit文件。当我运行代码时,x1,x2,x3的每个值都会根据边界条件打印出来

x1 = o3[(03 >= y1)]
print len(x1)
x2 = o3[(o3 < y2) & (o3 < y1)]
print len(x2)
x3 = o3[(o3 < y1) & (o3 >= y2)]
print len(x3)
xtotal = len(x1) + len(x2) + len(x3)
print xtotal

从这一点上,我得到了x1,x2,x3的值,大约为70000,90000和30000,总计约为190000。我想包括一行来计算这些值占总值的百分比,但是我似乎无法让它工作

已经试过了

x1percentage = (xtotal/x1)*100
print x1percentage

它返回的不是对长度进行操作的元素,而是当我尝试将长度定义为一个值时,它返回的答案是0

任何帮助都将不胜感激


Tags: 数据语言len错误printx1x2sdss
1条回答
网友
1楼 · 发布于 2024-10-05 13:26:04

您可能在整数数学中出错,但是您的语句

x1percentage = (xtotal/x1)*100

没什么意义xtotal是一个整数,x1是一个值数组,len(x1)是一个整数,等于x1的大小,不管如何获得一个百分比,您都需要x1/xtotal

如果您尝试len(x1)/xtotal,您将得到如您所提到的零,因为python将两个变量都转换为整数,并使用整数数学,结果是零

该解决方案将一个或两个值强制转换为浮点数,以强制浮点除以

x1percentage = (xtotal / float(x1)) * 100

相关问题 更多 >

    热门问题