Серия мусорного ведра с практическими рекомендациями значений плавающих в гистограмму в Python?

Я использовал Гобелен 3 , Калитка , Эхо , и JSF справедливо экстенсивно. Я действительно рекомендовал бы, чтобы Вы просмотрели тех и выбрали того, который появляется самое легкое для Вас, и наиболее тесно соответствовать способу, которым Вы предпочитаете работать.

Из них, самое удобное для меня для работы с было Калитка , из-за легкой природы здания компонента и простоты шаблонной обработки страницы. Это идет вдвойне поэтому при использовании собственного кода дб вместо, в спящем режиме или некоторая другая платформа (я никогда не был абсолютно доволен Калиткой, в спящем режиме или Интеграция Spring).

Эхо является большим, если Вы не возражаете писать все свое расположение в Java. Я знаю, что это отличается теперь, но я все еще думаю, что продукт служит довольно узкой нише. Они изменяют модель разработки с каждой главной версией также, это кажется.

Гобелен является большим продуктом, но это очевидно очень отличается от других с точки зрения модели разработки, поскольку это ведется главным образом одним чуваком. Howard Lewis Ship несомненно довольно умен, но я разочарован их решением в основном забыть назад совместимость с каждым выпуском. Снова, тем не менее, для Ваших потребностей это не может иметь значения, и я всегда находил продукты Гобелена радостными для работы против.

JSF отсутствовал в течение многих лет, и все еще чувствует себя подобно чему-то, что парень Struts создал для фиксации всех проблем Struts. Действительно не понимая все проблемы с Struts. Это все еще имеет незаконченное чувство к нему, хотя продукт очевидно очень гибок. Я использую его и имею некоторую нежность к нему с большими надеждами на ее будущее. Я думаю, что следующий выпуск (2.0), который будет поставлен в JEE6, действительно принесет его в свое собственное с новым шаблонным синтаксисом (подобный Facelets) и упрощенная компонентная модель (пользовательские компоненты только в 1 файле... наконец).

И, конечно, существует миллион меньших платформ и инструментов, которые получают их собственное следующее ( Скорость для главных потребностей, сырые данные JSPs, Struts, и т.д.). Я обычно предпочитаю, чтобы компонент ориентировал платформы сам, все же.

В конце, я рекомендовал бы просто смотреть на Гобелен, Калитку и JSF и просто выбрать тот, который чувствует лучшее Вам. Вы, вероятно, найдете тот, который просто соответствует способу, которым Вам нравится работать очень быстро.

10
задан neversaint 12 November 2009 в 10:21
поделиться

2 ответа

По возможности не изобретайте велосипед. В 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]
15
ответ дан 3 December 2019 в 19:33
поделиться

Первая ошибка:

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

Я не уверен, что еще здесь делать, так как я действительно не понимаю, какое ведение вы собираетесь использовать . Кажется, что это связано с двоичными степенями, но для меня это не имеет смысла ...

2
ответ дан 3 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: