Извлечь конкретные значения из массива в Python - PullRequest
0 голосов
/ 02 мая 2018

Я хочу вычислить средние и средние значения в наборе данных, но по многим причинам, в которые я не могу здесь войти, мой массив содержит мои значения и некоторые значения «заполнителя» (которые в настоящее время установлены в -1000).

Как вычислить среднее значение (например) только для значений, отличных от -1000?

res=[-1000 for x in range(0,10)]
res[1]=2
res[5]=3
res[7]=4
#something like this?
np.mean(res>-1000)

#the result should be the mean value of 2,3 and 4 (3)

MVCE

res=[1.0, 1.0, 1.0, 1.0, 1.0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000]
#for instance
print(np.mean(res[res > -1000]))

Ответы [ 2 ]

0 голосов

Зачем использовать другую библиотеку, когда у вас есть друг filter метод

import statistics
number_list = [2, -1000, 3, 4, -1000, -1000]
not_1000 = list(filter(lambda x: x != -1000, number_list))
not_1000_mean = statistics.mean(not_1000)
0 голосов
/ 02 мая 2018

Поскольку вы пометили numpy, вы должны использовать его для индексации / нарезки. Вот пример:

res = np.array([-1000 for x in range(0,10)])
res[1]=2
res[5]=3
res[7]=4

output = np.mean(res[res > -1000])  # 3.0

Прочтите numpy документы , чтобы узнать больше о логике индексации.

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