Как выборочно определить максимальное значение общего атрибута в списке объектов класса в Python? - PullRequest
0 голосов
/ 26 сентября 2019

Первый вопрос здесь.:) Предположим, у меня определен этот класс Python.

class DataBuffer :
    def __init__(self, buffer_name, buffer_type) :

        self.buffer_name = buffer_name
        self.buffer_type = buffer_type
        self.buffer_samples = numpy.zeros([100])
        self.minimum = 0
        self.maximum = 0
        self.average = 0 

    def ReturnAverage(self) :
        self.average = numpy.average(self.buffer_samples)
        return(self.average)

    def ReturnMaximum(self) :
        self.maximum = numpy.amax(self.buffer_samples)
        return(self.maximum)

    def ReturnMinimum(self) :
        self.maximum = numpy.amin(self.buffer_samples)
        return(self.minimum)

Я объявляю список этих объектов и добавляю несколько экземпляров.

buffers = []
buffers.append('Buffer1', 0)
buffers.append('Buffer2', 1)

….

buffers.append('Buffer99', 0)
buffers.append('Buffer100', 1)

Здесь у меня 100 буферов двух типов,0 и 1. 100 буферов не всегда поровну делятся 50/50 между двумя типами.Предположим, я заполнил эти буферы значениями с плавающей запятой и вычислил минимум, максимум и среднее значение для каждого буфера.Я ищу способ найти максимальный минимум, максимальный максимум и максимальное среднее значение для каждого типа буфера.Таким образом, будет максимальный минимум, максимальный максимум и максимальное среднее для буферов типа 0 и то же самое для буферов типа 1.У меня было бы всего 6 результатов.

Как я могу получить список минимумов / максимумов / средних для каждого экземпляра, [1 ... 100], чтобы найти их максимальное значение в каждом типе буфера?Я не хочу грубо форсировать это с помощью цикла for и создавать ненужную копию данных в одномерном списке.Здесь у меня есть 100 буферов, но я мог бы работать с 1000 или даже 10000 буферов.К сожалению, я не могу позволить себе создавать отдельные списки буферов типа 0 и 1.Это все одна большая смесь.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...