2016-02-19 2 views
-1

У меня есть массив с двумя d-числами. Мне нужно сохранить все строки, значение которых в определенном столбце больше определенного числа. Прямо сейчас, у меня есть:Numpy, где для 2-мерного массива

f_left = np.where(f_sorted[:,attribute] >= split_point) 

И это не удается с: "Index Error: too many indices for array"

Как мне это сделать? Я не могу понять это с сайта Numpy, here

+0

Вы можете разместить образец данных: Это прекрасно работает с простым случаем, когда атрибут '= 0 ',' split_point = 2' и 'f_sorted = np.arange (20) .reshape ((2, 10)) '. –

ответ

3

Вы на самом деле даже не нужно где.

yy = np.array(range(12)).reshape((4,3)) 


    yy[yy[:,1] > 2] 

Выход

array([[ 3, 4, 5], 
     [ 6, 7, 8], 
     [ 9, 10, 11]]) 
2
x = np.array([[2,3,4],[5,6,7],[1,2,3],[8,9,10]]) 

array([[ 2, 3, 4], 
     [ 5, 6, 7], 
     [ 1, 2, 3], 
     [ 8, 9, 10]]) 

Найти строки, где второй элемент являются >=4

x[np.where(x[:,1] >= 4)] 

array([[ 5, 6, 7], 
     [ 8, 9, 10]]) 
+0

Awesome, спасибо ... Я бы не получил там (новый для python в прошлом семестре) – bordeo

Смежные вопросы