Обнаружьте, если массив NumPy содержит по крайней мере одно нечисловое значение?

Эта ошибка возникает из-за того, что файл xaml ссылается на не построенное пространство имен.

Мое решение [в 3 этапа]:

1- Прокомментируйте проблемный файл [ы] и замените его пустой версией. Например, для вас:

<!-- <Window ...> </Window> -->  <!--you orginal xaml code!, uncomment later-->

<Window                          <!-- temp xaml code, remove later -->
    x:Class="MyProject.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Window>

2- Очистите и перестройте проект / решение.

3-Раскомментируйте оригинальный код xaml и удалите временный код xaml.

это сделано.

88
задан Peter Mortensen 10 December 2010 в 11:17
поделиться

2 ответа

Это должно быть быстрее, чем итерация, и будет работать независимо от формы.

numpy.isnan(myarray).any()

Изменить: в 30 раз быстрее:

import timeit
s = 'import numpy;a = numpy.arange(10000.).reshape((100,100));a[10,10]=numpy.nan'
ms = [
    'numpy.isnan(a).any()',
    'any(numpy.isnan(x) for x in a.flatten())']
for m in ms:
    print "  %.2f s" % timeit.Timer(m, s).timeit(1000), m

Результаты:

  0.11 s numpy.isnan(a).any()
  3.75 s any(numpy.isnan(x) for x in a.flatten())

Бонус: он отлично работает для типов NumPy без массива :

>>> a = numpy.float64(42.)
>>> numpy.isnan(a).any()
False
>>> a = numpy.float64(numpy.nan)
>>> numpy.isnan(a).any()
True
155
ответ дан 24 November 2019 в 07:31
поделиться

Это можно сделать с помощью numpy 1.3 или svn

In [1]: a = arange(10000.).reshape(100,100)

In [3]: isnan(a.max())
Out[3]: False

In [4]: a[50,50] = nan

In [5]: isnan(a.max())
Out[5]: True

In [6]: timeit isnan(a.max())
10000 loops, best of 3: 66.3 µs per loop

Обработка nans при сравнении не согласовывалась в более ранних версиях.

3
ответ дан 24 November 2019 в 07:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: