aboderinsamuel opened a new pull request, #50203:
URL: https://github.com/apache/arrow/pull/50203

   ### Rationale for this change
   
   Constructing a fixed-shape-tensor array from a list of individual ndarrays 
only
   worked when each element was 1-D; ≥2-D elements failed with
   `ArrowInvalid: Can only convert 1-dimensional array values`. The only 
workaround
   was stacking the list into a single ndarray and using
   `FixedShapeTensorArray.from_numpy_ndarray`.
   
   ### What changes are included in this PR?
   
   The C++ list converter `PyListConverter::AppendNdarray` now accepts
   multi-dimensional ndarray elements for **fixed-size lists** (the storage of a
   fixed-shape tensor) by flattening them in C order. The fixed-size-list 
builder
   still validates that the flattened length matches the list width, so wrong 
sizes
   error cleanly. Variable-sized lists remain restricted to 1-D values to avoid
   ambiguity. As a side benefit, plain `fixed_size_list` also accepts
   multi-dimensional ndarray elements now.
   
   ### Are these changes tested?
   
   Yes:
   - `test_tensor_array_from_list_of_ndarrays` — construction from 2-D and 3-D
     ndarrays, null handling, storage parity with `from_numpy_ndarray`, and the
     size-mismatch error, across `int8`/`int64`/`float32`.
   - `test_fixed_size_list_from_multidim_ndarray` — plain `fixed_size_list` from
     multi-dim arrays, plus a check that variable-sized lists still reject 2-D.
   
   ### Are there any user-facing changes?
   
   Yes — `pa.array([multi-dim ndarrays], type=fixed_shape_tensor(...))` (and the
   same for `fixed_size_list`) now works instead of raising. Existing 1-D 
behavior
   and variable-sized-list behavior are unchanged.
   
   Scoped to construction only; the reverse `to_numpy` shape-preservation also
   raised in the issue is intentionally left as a separate follow-up.


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to