jorisvandenbossche commented on a change in pull request #10199:
URL: https://github.com/apache/arrow/pull/10199#discussion_r626335393
##########
File path: cpp/src/arrow/python/numpy_to_arrow.cc
##########
@@ -594,7 +594,13 @@ Status NumPyConverter::Visit(const FixedSizeBinaryType&
type) {
if (mask_ != nullptr) {
Ndarray1DIndexer<uint8_t> mask_values(mask_);
- RETURN_NOT_OK(builder.AppendValues(data, length_, mask_values.data()));
+ std::unique_ptr<uint8_t[]> inverted_mask(new uint8_t[length_]);
+ for (int64_t i = 0; i < length_; ++i) {
+ inverted_mask[i] = !mask_values[i];
+ }
Review comment:
With this change, we are now looping over the values, and appending
iteratively. Would that have performance implications?
Since this is for a fixed size/strided array, an alternative could be to
create the ArrayData directly (as mentioned by Antoine), which would be similar
to VisitNative I suppose?
https://github.com/apache/arrow/blob/3a9aea3dd0e2a2b1c68bd9cfc141d83adb9fbc35/cpp/src/arrow/python/numpy_to_arrow.cc#L276-L280
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]