2016-02-02 2 views
3

у меня есть такая Numpy матрица:удаления столбцов, которые имеют значение только «нан» из Numpy матрицы

[[182 93 107 ..., nan nan -1] 
[182 93 107 ..., nan nan -1] 
[182 93 110 ..., nan nan -1] 
..., 
[188 95 112 ..., nan nan -1] 
[188 97 115 ..., nan nan -1] 
[188 95 112 ..., nan nan -1]] 

Я хочу, чтобы удалить столбцы, которые только включает в себя значение «нан» из приведенной выше матрицы.

Как я могу управлять им?

Спасибо,

ответ

4

Предполагая, что ваш массив имеет float с компанией, вы можете определить все столбцы, которые являются NaN и использовать фантазии индексации для получения других:

d 
array([[ 182., 93., 107., nan, nan, -1.], 
     [ 182., 93., 107., 4., nan, -1.], 
     [ 182., 93., 110., nan, nan, -1.], 
     [ 188., 95., 112., nan, nan, -1.], 
     [ 188., 97., 115., nan, nan, -1.], 
     [ 188., 95., 112., nan, nan, -1.]]) 


d[:,~np.all(np.isnan(d), axis=0)] 

array([[ 182., 93., 107., nan, -1.], 
     [ 182., 93., 107., 4., -1.], 
     [ 182., 93., 110., nan, -1.], 
     [ 188., 95., 112., nan, -1.], 
     [ 188., 97., 115., nan, -1.], 
     [ 188., 95., 112., nan, -1.]]) 
+1

@yusuf упс - вы право: см. исправленное сообщение – xnx

+0

Спасибо, я удалил свой верхний комментарий :) – yusuf

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