У меня есть матрица NumPy 3465 x 50157 и я пытаюсь протестировать определенное вычисление, используя каждое уникальное значение в выбранном столбце матрицы в качестве порогового значения. Рассмотрим следующий пример:NumPy unique() возвращающий массив вместо скаляра
feat_num = 4
thresholds = np.unique(X[:, feat_num])
for thresh in thresholds:
y_left = np.array([
y[i] for i in range(X.shape[0]) if X[i, feat_num] < thresh
])
При выполнении этого NumPy дает мне следующее сообщение об ошибке:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().
Я подтвердил, что X[i, feat_num]
является скаляром, так что не проблема там. Однако по какой-то причине thresh
оценивает массив какого-либо типа. Я не вижу, как это может быть, учитывая, что X
- это просто большая матрица целых чисел.
Кто-нибудь видит, что происходит?
Что такое y? или что такое X только одна форма массива описывается в вашем вопросе –
И 'thresh' также является скаляром? – hpaulj