保留 numpy 二维数组的顺序

Preserving sequential order of numpy 2D arrays

给定这个二维 numpy 数组:

a=numpy.array([[31,22,43],[44,55,6],[17,68,19],[12,11,18],...,[99,98,97]])

鉴于需要使用 numpy.ravel:

将其展平
b=numpy.ravel(a)

考虑到稍后需要将其转储到 pandas 数据帧中,如何确保在应用 [=] 时保留 a 中值的顺序13=]? 例如,我怎样才能 check/ensure 使 numpy.ravel 不会弄乱原来的顺序?

当然,预期的结果应该是 b17 前后的数字,例如,与 a 中的数字相同。

首先,您需要阐明 "sequential" 顺序对您意味着什么,因为 numpy.ravel() 会保留顺序。以下是如何制定您需要的提示:尝试使用最简单的玩具示例:

import numpy as np
X = np.arange(20).reshape(-1,4)

X
#array([[ 0,  1,  2,  3],
#   [ 4,  5,  6,  7],
#   [ 8,  9, 10, 11],
#   [12, 13, 14, 15],
#   [16, 17, 18, 19]])
X.ravel()
# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 
#        13, 14, 15, 16, 17, 18, 19])

是否符合您的预期?或者您想查看此订单:

Z = X.T
Z
# array([[ 0,  4,  8, 12, 16],
#        [ 1,  5,  9, 13, 17],
#        [ 2,  6, 10, 14, 18],
#        [ 3,  7, 11, 15, 19]])
Z.ravel()
# array([ 0,  4,  8, 12, 16,  1,  5,  9, 13, 17,  2,  6, 10, 
#         14, 18,  3,  7, 11, 15, 19])