Я использовал Гобелен 3 , Калитка , Эхо , и JSF справедливо экстенсивно. Я действительно рекомендовал бы, чтобы Вы просмотрели тех и выбрали того, который появляется самое легкое для Вас, и наиболее тесно соответствовать способу, которым Вы предпочитаете работать.
Из них, самое удобное для меня для работы с было Калитка , из-за легкой природы здания компонента и простоты шаблонной обработки страницы. Это идет вдвойне поэтому при использовании собственного кода дб вместо, в спящем режиме или некоторая другая платформа (я никогда не был абсолютно доволен Калиткой, в спящем режиме или Интеграция Spring).
Эхо является большим, если Вы не возражаете писать все свое расположение в Java. Я знаю, что это отличается теперь, но я все еще думаю, что продукт служит довольно узкой нише. Они изменяют модель разработки с каждой главной версией также, это кажется.
Гобелен является большим продуктом, но это очевидно очень отличается от других с точки зрения модели разработки, поскольку это ведется главным образом одним чуваком. Howard Lewis Ship несомненно довольно умен, но я разочарован их решением в основном забыть назад совместимость с каждым выпуском. Снова, тем не менее, для Ваших потребностей это не может иметь значения, и я всегда находил продукты Гобелена радостными для работы против.
JSF отсутствовал в течение многих лет, и все еще чувствует себя подобно чему-то, что парень Struts создал для фиксации всех проблем Struts. Действительно не понимая все проблемы с Struts. Это все еще имеет незаконченное чувство к нему, хотя продукт очевидно очень гибок. Я использую его и имею некоторую нежность к нему с большими надеждами на ее будущее. Я думаю, что следующий выпуск (2.0), который будет поставлен в JEE6, действительно принесет его в свое собственное с новым шаблонным синтаксисом (подобный Facelets) и упрощенная компонентная модель (пользовательские компоненты только в 1 файле... наконец).
И, конечно, существует миллион меньших платформ и инструментов, которые получают их собственное следующее ( Скорость для главных потребностей, сырые данные JSPs, Struts, и т.д.). Я обычно предпочитаю, чтобы компонент ориентировал платформы сам, все же.
В конце, я рекомендовал бы просто смотреть на Гобелен, Калитку и JSF и просто выбрать тот, который чувствует лучшее Вам. Вы, вероятно, найдете тот, который просто соответствует способу, которым Вам нравится работать очень быстро.
По возможности не изобретайте велосипед. В NumPy есть все, что вам нужно:
#!/usr/bin/env python
import numpy as np
a = np.fromfile(open('file', 'r'), sep='\n')
# [ 0. 0.005 0.124 0. 0.004 0. 0.111 0.112]
# You can set arbitrary bin edges:
bins = [0, 0.150]
hist, bin_edges = np.histogram(a, bins=bins)
# hist: [8]
# bin_edges: [ 0. 0.15]
# Or, if bin is an integer, you can set the number of bins:
bins = 4
hist, bin_edges = np.histogram(a, bins=bins)
# hist: [5 0 0 3]
# bin_edges: [ 0. 0.031 0.062 0.093 0.124]
Первая ошибка:
Traceback (most recent call last):
File "C:\foo\foo.py", line 17, in <module>
diffCounts[ str(getBin(diff)) ] += 1
TypeError: list indices must be integers
Почему вы преобразуете int в str, когда требуется str? Исправьте это, тогда мы получим:
Traceback (most recent call last):
File "C:\foo\foo.py", line 17, in <module>
diffCounts[ getBin(diff) ] += 1
IndexError: list index out of range
, потому что вы сделали только 5 ведер. Я не понимаю вашу схему сегментирования, но давайте сделаем 50 сегментов и посмотрим, что произойдет:
6
Traceback (most recent call last):
File "C:\foo\foo.py", line 21, in <module>
maxBin = max(maxdiff)
TypeError: 'int' object is not iterable
maxdiff
- это единственное значение из вашего списка целых чисел, так что здесь делает max
? Удалите его, теперь мы получаем:
6
Traceback (most recent call last):
File "C:\foo\foo.py", line 28, in <module>
print binStr + '\t' + '\t'.join(map(str, (diffCounts[i])))
TypeError: argument 2 to map() must support iteration
Конечно же, вы используете одно значение в качестве второго аргумента map
. Давайте упростим последние две строки от этого:
binStr = '[' + str(lo) + ',' + str(hi) + ')'
print binStr + '\t' + '\t'.join(map(str, (diffCounts[i])))
до этого:
print "[%f, %f)\t%r" % (lo, hi, diffCounts[i])
Теперь он печатает:
6
[0.000000, 1.000000) 3
[1.000000, 3.000000) 0
[3.000000, 7.000000) 2
[7.000000, 15.000000) 0
[15.000000, 31.000000) 0
[31.000000, 63.000000) 0
[63.000000, 127.000000) 3
Я не уверен, что еще здесь делать, так как я действительно не понимаю, какое ведение вы собираетесь использовать . Кажется, что это связано с двоичными степенями, но для меня это не имеет смысла ...