У меня есть этот код:массив обновления вызывая различные методы в классе
class MyClass():
def __init__(self, the_name, the_method):
self.the_name = the_name
self.the_method = the_method
def evaluation(self, the_name):
the_name = self.the_name
the_method = self.the_method
if the_method == 'A':
the_name = np.where(
np.logical_or(
the_name < themin,
the_name > themax),
the_name, self.replace(the_name)
)
return the_name
def replace(self, the_name):
the_name = self.the_name
the_method = self.the_method
the_name[:] = 3333
return the_name
the_method = 'A'
themin = 30
themax = 100
the_name = np.array([1, 22, 36, 34, 49, 60, 79, 101, 124, 147])
theobj = MyClass(the_name, the_method).evaluation(the_name)
print(the_name)
Результат: [3333 3333 3333 3333 3333 3333 3333 3333 3333 3333]
Я первый проверки в методе оценки, если метод, который я хочу, это один (в данном примере метод A
).
Затем, я хочу применить некоторые критерии. Если значение the_name is < themin or > themax
, то оставьте конкретные элементы the_name
такими, какие они есть.
Если это не так, позвоните по методу replace
.
Но, я хочу, чтобы метод замены работал с обновленным the_name
.
Прямо сейчас, результат неправильный.
Я хочу [1 22 3333 3333 3333 3333 3333 101 124 147]
как результат.
---- Другое Senario -----------
Если у меня есть что-то вроде этого:
def evaluation(self, array):
if self.the_method == 'A':
if np.any(array < themin):
self.replace(array)
return array
def replace(self, array):
return np.average(array)
Итак, я хочу, чтобы вычислить среднее значение в целом массив.
. Если я хочу иметь значение для всего массива? Итак, имя_файла будет содержать среднее значение – George
I'm не уверен, понимаю ли я то, что вы хотите. Я думал, что вы хотите заменить конкретные значения массива (между 'themin' и' themax') либо с 3333, либо с массивом, означающим '65.3', округляя до' 65', потому что у вас есть целочисленный массив. – jotasi
Во втором senario в моем сообщении у меня просто есть условие. Если какое-либо значение в массиве
George