Я хочу создать массив с маской с использованием numpy.ma
, импортированный PyCall в Julia.Как создать маскированный массив, используя numpy.ma, импортированный PyCall в Julia
Пример Python в помощь is_masked()
в numpy.ma
модуль.
>>> import numpy.ma as ma
>>> x = ma.masked_equal([0, 1, 0, 2, 3], 0)
>>> x
masked_array(data = [-- 1 -- 2 3],
mask = [ True False True False False],
fill_value=999999)
>>> ma.is_masked(x)
True
Я попытался перевести его в Юлию, используя PyCall.
julia> using PyCall
julia> @pyimport numpy.ma as ma
julia> x = ma.masked_equal([0, 1, 0, 2, 3], 0);
julia> x
5-element Array{Int64,1}:
0
1
0
2
3
julia> ma.is_masked(x)
false
Приведенный выше код НЕ работает. Он не создает объект Python. Он просто создает обычный массив Julia. Я пробовал другие способы, такие как ma.array([1, 2, 3], mask=[0, 0, 1])
, но все еще не работает.
Однако из примера в https://github.com/stevengj/PyCall.jl,
julia> @pyimport Bio.Seq as s
julia> @pyimport Bio.Alphabet as a
julia> my_dna = s.Seq("AGTACACTGGT", a.generic_dna)
PyObject Seq('AGTACACTGGT', DNAAlphabet())
julia> my_dna[:find]("ACT")
5
В этом случае объект Python можно создавать непосредственно без усилий.
Вопрос: Что случилось с моим переводом? Как я могу создать массив с маской в numpy в Julia?
Не могли бы вы [открыть вопрос более в PyCall.jl] (https: // GitHub. ком/stevengj/PyCall.jl/вопросы/новые)? Таким образом, вы сможете отслеживать свой прогресс самостоятельно. –
Большое спасибо. Я открою вопрос о маскированном массиве в numpy.ma! –