У меня есть код, состоящий из двух функций, одна из которых читает данные, а другая - их считает. Обе функции работают правильно при отдельном запуске, но я получаю ошибку, когда пытаюсь заставить счетчик вызвать программу чтения файлов. Я был бы признателен, если бы кто-нибудь мог сказать мне, где я обманываю. Заранее спасибо
Error
File "C:\Documents and Settings\Read_File.py", line 50, in counter
Sx = ((25. < Xa) & (Xa < 100.)).sum() #count what is in x range
TypeError: unorderable types: float() < function()
код
for line in f: #Loop Strips empty lines as well as replaces tabs with space
if line !='':
line = line.strip()
line = line.replace('\t',' ')
columns = line.split()
for line in range(N): #Loop number of lines to be counted
x = columns[8] # assigns variable to columns
y = columns[18]
z = columns[19]
#vx = columns[]
#vy = columns[]
#vz = columns[]
X.append(x)
Y.append(y) #appends data in list
Z.append(z)
Xa = numpy.array(X, dtype=float) #Converts lists to NumPy arrays
Ya = numpy.array(Y, dtype=float)
Za = numpy.array(Z, dtype=float)
return(Xa,Ya,Za) #returns arrays/print statement to test
def counter(Xa):
Sx = ((25. < Xa) & (Xa < 100.)).sum() #count what is in x range
Sy = ((25. < Ya) & (Ya < 100.)).sum() #count what is in y range
Sz = ((25. < Za) & (Za < 100.)).sum() #count what is in z range
return(print(Sx,Sy,Sz))
read_file(F) #function calls
counter(read_file)
1010 * РЕДАКТИРОВАТЬ *
С помощью Льва и Джеймса была исправлена первая проблема, теперь я получаю эту ошибку
Sx = ((2. < Xa) & (Xa < 10.)).sum() #count what is in x range
TypeError: unorderable types: float() < tuple()
Это из-за запятых в массивах? И если так, как я могу обойти это?