Sqlectron - это межплатформенный SQL-клиент с открытым исходным кодом с простым и простым графическим интерфейсом, который поддерживает Microsoft SQL Server (наряду с PostgreSQL, MySQL, Cassandra и SQLite).
Вы можете использовать np.where, чтобы найти, где у вас есть NaN:
import numpy as np
a = np.array([[ 0, 43, 67, 0, 38],
[ 100, 86, 96, 100, 94],
[ 76, 79, 83, 89, 56],
[ 88, np.nan, 67, 89, 81],
[ 94, 79, 67, 89, 69],
[ 88, 79, 58, 72, 63],
[ 76, 79, 71, 67, 56],
[ 71, 71, np.nan, 56, 100]])
b = np.where(np.isnan(a), 0, a)
In [20]: b
Out[20]:
array([[ 0., 43., 67., 0., 38.],
[ 100., 86., 96., 100., 94.],
[ 76., 79., 83., 89., 56.],
[ 88., 0., 67., 89., 81.],
[ 94., 79., 67., 89., 69.],
[ 88., 79., 58., 72., 63.],
[ 76., 79., 71., 67., 56.],
[ 71., 71., 0., 56., 100.]])
Вы можете использовать numpy.nan_to_num:
numpy.nan_to_num (x): Заменить nan с нулем и inf с конечными числами.Пример (см. doc):
>>> np.set_printoptions(precision=8)
>>> x = np.array([np.inf, -np.inf, np.nan, -128, 128])
>>> np.nan_to_num(x)
array([ 1.79769313e+308, -1.79769313e+308, 0.00000000e+000,
-1.28000000e+002, 1.28000000e+002])
Пример кода для ответа drake на использование nan_to_num:
>>> import numpy as np
>>> A = np.array([[1, 2, 3], [0, 3, np.NaN]])
>>> A = np.nan_to_num(A)
>>> A
array([[ 1., 2., 3.],
[ 0., 3., 0.]])
nan никогда не равен nan
if z!=z:z=0
, поэтому для 2D-массива
for entry in nparr:
if entry!=entry:entry=0
Вы можете использовать лямбда-функцию, пример для массива 1D:
import numpy as np
a = [np.nan, 2, 3]
map(lambda v:0 if np.isnan(v) == True else v, a)
Это даст вам результат:
[0, 2, 3]
Где A - ваш 2D-массив:
import numpy as np
A[np.isnan(A)] = 0
Функция isnan создает массив bool, указывающий, где находятся значения NaN. Логический массив может использоваться для индексации массива той же формы. Подумайте об этом как маску.
Для ваших целей, если все элементы хранятся как str, и вы просто используете отсортированные по мере использования, а затем проверяете первый элемент и заменяете его «0»
>>> l1 = ['88','NaN','67','89','81']
>>> n = sorted(l1,reverse=True)
['NaN', '89', '88', '81', '67']
>>> import math
>>> if math.isnan(float(n[0])):
... n[0] = '0'
...
>>> n
['0', '89', '88', '81', '67']