#python #numpy #logic
#python #numpy #Логические
Вопрос:
У меня есть ряд X, содержащий N значений. Я хотел бы выбрать значения X с учетом условия X [i] > V. Я бы подумал, что что-то вроде:
Y = X[(X[:] > V)]
Будет работать. На данный момент я получаю набор null, хотя я знаю, что подмножество значений в X удовлетворяет этому условию.
Я пишу это неправильно?
Комментарии:
1. Почему вы используете
X[:] > V
вместо простоX > V
?2. Вы говорите «серия», но этот вопрос помечен
numpy
. Что это? (хотя в данном случае это не должно иметь значения)3. Спасибо всем, я понял это. Кстати, имел в виду pandas.
Ответ №1:
Приведенный вами код верен, если вы хотите сравнить каждый из них X[i]
с каждым V[i]
. УВЕДОМЛЕНИЕ
>>> import numpy as np
>>> x = np.array(range(5))
>>> v = np.array([3]*5)
>>> x[x > v]
array([4])
Если оригинал — это то, что вы действительно хотели, повторно проверьте свой x
и v
. Обратите внимание, что вам не нужно добавлять пустое понимание [:]
к x, хотя это не изменит результат. Кажется, что вы хотите (утверждая, что это не работает), все ли x больше, чем любой элемент V? Если это так, возьмите минимальное значение v и выполните ту же маску
x[x > np.min(v)]
Комментарии:
1. Что вы имеете в виду
Y[i]
. Это серия, которую он назначает2. Он где-нибудь говорит, что
V
такое? Это может быть скаляр, это не обязательно должен быть другой массив.3. хороший момент — это было предположение, учитывая утверждение о том, что оно работает не так, как задумано OP