2016-06-24 4 views
1

Я новичок в numpy, но я не могу заставить этот кусок кода работать.Замена столбца значений inf 0

item3.apply(lambda x : (x[np.isneginf(x)] = 0)) 

item3 - это вектор массивов numpy с 300 размерами в каждом массиве.

Ошибка, вызванная недопустимым синтаксисом. Как я могу достичь этой функции.

Однако, учитывая, что это вектор векторов numat float64. Тип данных - объект. и он бросает исключение

TypeError: ufunc 'isinf' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' 

Item3 столбец, который содержит элементы, которые имеют 300 размера каждой

+0

«с 300 размерами в каждом массиве «вы имели в виду 300 элементов? –

+0

Да, я имею в виду это так – aceminer

ответ

0

Вы могли бы сделать что-то вроде этого:

import numpy as np 
from numpy import inf 

x = np.array([inf, inf, 0]) # Create array with inf values 

print x # Show x array 

x[x == inf] = 0 # Replace inf by 0 

print x # Show the result 

enter image description here

+0

Да, но это дает мне синтаксическую ошибку, если я делаю это так – aceminer

+0

@aceminer Если вы сделаете это: 'item3.apply (lambda x: (x [x == inf] = 0))' ? Я не пробовал это на данный момент – Deadpool