JuliaPy / JuliaPy/PyCall.jl

Type conversion of `masked_array` in `numpy.ma`

Đang mở
#243 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Julia
Star
1.5k
Fork
186
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Also described in my question in StackOverflow: [How to create a masked array using numpy.ma imported by PyCall in Julia](http://stackoverflow.com/questions/35709042/how-to-create-a-masked-array-using-numpy-ma-imported-by-pycall-in-julia/35710432#35710432)

I was trying to create a `masked_array` Python object with `numpy.ma`.

``` julia
using PyCall
@pyimport numpy.ma as ma
x = ma.masked_equal([0, 1, 0, 2, 3], 0)
ma.is_masked(x)
```

The output, however, is just a Julia array.

```julia
julia> x = ma.masked_equal([0, 1, 0, 2, 3], 0)
5-element Array{Int64,1}:
0
1
0
2
3
julia> ma.is_masked(x)
false
```

The correct output can be obtained by using `pycall()` (thank Matt B. for pointing it out in my stackoverflow question):

```julia
julia> x = pycall(ma.masked_equal, Any, [0,1,0,2,3], 0)
PyObject masked_array(data = [-- 1 -- 2 3],
mask = [ True False True False False],
fill_value = 0)
julia> ma.is_masked(x)
true
```

It happens because PyCall considers the `masked_array` as just a usual array.

```julia
julia> pytype_query(x)
Array{Int64,N}
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Tái hiện ví dụ với @pyimport numpy.ma, masked_equal, pycall và pytype_query, sau đó theo dõi cách PyCall phân loại masked_array được trả về. Issue không nêu file hoặc test nào; được coi là hoàn thành khi masked_equal giữ nguyên đối tượng masked-array để ma.is_masked(x) trả về true mà không cần Any workaround.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
julia, numpy, python
Lĩnh vực
developer-experience
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.