![](https://secure.gravatar.com/avatar/ae8547ef993e0dd573bbe29bef562293.jpg?s=120&d=mm&r=g)
Hi, On Mon, Nov 13, 2023 at 7:41 AM Aaron Meurer <asmeurer@gmail.com> wrote:
High level abstractions like .flat or boolean indexing / np.nonzero() always use C ordering regardless of the underlying data.
list(np.asarray([[0, 1], [2, 3]]).flat) [0, 1, 2, 3] list(np.asarray([[0, 1], [2, 3]], order='F').flat) [0, 1, 2, 3]
Just in case it caused others to pause as it did me, here's the Boolean indexing demonstration:
c_arr = np.asarray([[0, 1], [2, 3]]) f_arr = np.asarray([[0, 1], [2, 3]], order='F') bool_arr = np.array([[False, True], [True, False]]) c_arr[bool_arr] array([1, 2]) f_arr[bool_arr] array([1, 2]) c_arr[np.array(bool_arr, order='F')]. # Indexing array order is irrelevant array([1, 2])
np.nonzero(c_arr < 3) (array([0, 0, 1]), array([0, 1, 0])) np.nonzero(f_arr < 3) (array([0, 0, 1]), array([0, 1, 0]))
Cheers, Matthew