Для удаления NaN
значения, которые можно использовать функция фильтра. Из документов Julia:
фильтра (функция, коллекция)
вернуть копию коллекции, удаление элементов, для которых функция является ложной.
x = filter(y->!isnan(y),y)
filter!(y->!isnan(y),y)
Таким образом, мы создаем в нашей функции условной !isnan(y)
и использовать ее для фильтрации массива y
(примечание, мы могли бы также написали с помощью z
или любой другой переменной мы выбрали, так как первый аргумент filter
просто определяет встроенную функцию). Обратите внимание: мы можем либо сохранить это как новый объект, либо использовать версию модификации на месте, сигнализированную !
, чтобы просто изменить существующий объект. y
Затем, до или после этого, в зависимости от того, хотим ли мы чтобы включить NaN
s в наш счет, мы можем использовать функцию countmap()
из StatsBase. Из документов Julia:
countmap (х)
Вернуться словарь отображения каждое уникальное значение х его количества вхождений.
using StatsBase
a = countmap(y)
вы можете получить доступ к определенным элементам этого словаря, например, a[-1]
покажет вам, сколько вхождений есть из -1
Или, если вы хотите, чтобы затем преобразовать этот словарь в массив, вы можете использовать:
b = hcat([[key, val] for (key, val) in a]...)'
Примечание: Благодаря @JeffBezanon для комментариев на правильном метод фильтрации NaN
значений.
См. Также http://stackoverflow.com/questions/21172027/count-instances-of-each-unique-integer-in-a-vector-in-1-line-of-code –