Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关于列长度的操作_Python_Numpy_Pyfits - Fatal编程技术网

Python 关于列长度的操作

Python 关于列长度的操作,python,numpy,pyfits,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) &

首先,如果我使用了错误的语言来解释我在操作什么,我很抱歉,我对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
这将返回对长度进行操作的元素,但当我尝试将长度定义为一个值时,它将返回一个0的答案


任何帮助都将不胜感激。

您可能在整数数学方面出错,但您的声明

x1percentage = (xtotal/x1)*100
没什么意义
xtotal
是一个整数,
x1
是一个值数组,
len(x1)
是一个等于
x1
大小的整数,无论如何获得您想要的百分比
x1/xtotal

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

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

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

啊,我只是想澄清一下,除了你的数据来自FITS文件之外,这并不是一个关于PyFITS的问题。PyFITS使用所谓的NumPy数组。这些是大多数科学Python应用程序中用于数字数据的主要数据结构,因此学习NumPy的一些基础知识是在Python中进行数据分析的先决条件,无论好坏。如果您曾经使用过MATLAB,NumPy数组与MATLAB中的数组类似。你可以从我的简短教程开始,但也有其他人(可能更好:)可能他们想要
float(len(x1))/xtotal*100
,但其他方面是的。
x1percentage = (xtotal / float(x1)) * 100