列长度​​的操作

时间:2016-02-27 18:19:01

标签: python numpy pyfits

首先,对不起,如果我使用错误的语言来解释我正在操作的内容,我对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

从这一点开始,我获得了大约70000,90000和30000的x1,x2,x3的值,总共大约190000.我想包括一条线来计算总价值的百分比,但我可以'似乎让这个工作。

尝试过。

x1percentage = (xtotal/x1)*100
print x1percentage

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可能在使用整数数学时出错,但您的声明

x1percentage = (xtotal/x1)*100

没有意义。 xtotal是一个整数,x1是一个值数组,len(x1)是一个等于x1大小的整数,无论​​你想得到一个百分比x1/xtotal len(x1)/xtotal 1}}。

如果你试过x1percentage = (xtotal / float(x1)) * 100 ,你会得到零,因为python会将两个变量都转换为整数并使用整数数学,结果为零。

解决方案将一个或两个值强制转换为浮动以强制浮点除法

<meta http-equiv="refresh" content="30" >